我认为
<input type="date">
将返回年月日。我正在尝试根据上述输入来计算天数差异。我在想这个吗?
function combinedDate() {
(getDate(), getMonth(), getFullYear())
};
function totalDaysUpdateTotals () {
var difference_In_Days = fday.combinedDate() - sday.combinedDate();
let lsatotal = difference_In_Days.value * tlsa.value;
dlsa.innerHTML = `Total LSA Days${difference_In_Days}`;
tlsa.innerHTML = `Total LSA £${lsatotal}`;
}
<div id="lsacalc">
<label for="sday"> First Day of Entitlement </label>
<input type="date" id="sday" name="sday">
<br><hr>
<label for="fday"> Last Day of Entitlement </label>
<input type="date" id="fdayf" name="fday">
<br><hr>
<label for="rlsa"> LSA Level </label>
<input type="text" id="rlsa" name="rlsa" Value="1">
<br>
<hr>
<button onclick="totalDaysUpdateTotals;">Submit</button>
<br>
<hr>
<div class="dlsa" id="tlsa"></div>
<div class="tlsa" id="tlsa"></div>
</form>
您不能像这样组合多种方法。
[如果要计算天数差异,请通过调用getTime()
方法获得毫秒数差异,然后除以一天中的毫秒数(86400000)。
您也不使用.value
访问变量的值,这只是为了获取输入元素的值。
function totalDaysUpdateTotals() {
var fday = new Date(document.getElementById("fday").value);
var sday = new Date(document.getElementById("sday").value);
var difference_In_Days = Math.floor((fday.getTime() - sday.getTime())/86400000);
let lsatotal = difference_In_Days * tlsa.value;
dlsa.innerHTML = `Total LSA Days${difference_In_Days}`;
tlsa.innerHTML = `Total LSA £${lsatotal}`;
}
给出today_date
和input_date
,您可以将它们之间的天差计算为:
Math.floor((today_date - input_date) / 86400000)
其中86,400,000是每天的毫秒数(即 24小时* 60分钟* 60秒* 1000毫秒)。
$(function() {
$('#input_date').on('change', function () {
let today_date = new Date().getTime();
let input_date = new Date($('#input_date').val()).getTime();
console.log(Math.floor((today_date - input_date) / 86400000));
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="input_date" type="date">