【发布时间】:2020-06-15 12:03:28
【问题描述】:
我正在尝试减去两个 HTML 日期类型并提取差异,以天为单位。
ci 和co 代表入住和退房
document.getElementById('co').valueAsDate = new Date(86400000 + +new Date())
document.getElementById('ci').valueAsDate = new Date();
var date1 = document.getElementById('ci').value;
var date2 = document.getElementById('co').value;
const diffTime = Math.abs(date2 - date1);
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); // find diffdate
document.getElementById('diffday').value = diffDays;
<input id="ci" type="date" class="datepicker" min="1">
<input id="co" type="date" class="datepicker">
<input id="diffday" type="number" min="0">
<label for="day">diffday</label>
【问题讨论】:
-
问题出在哪里?
-
@TheAlpha93 张贴者减去两个输入(字符串)值而不是日期。
-
您应该使用 Math.round 而不是 Math.ceil,因为日期范围越过了夏令时边界,可能会导致额外的一天。同样,
new Date(86400000 + +new Date())有时也不会添加一整天。
标签: javascript html date