例如,在输入框中给定两个日期:
<input id="first" value="1/1/2000"/>
<input id="second" value="1/1/2001"/>
<script>
alert(datediff("day", first, second)); // what goes here?
</script>
如何在JavaScript中获得两个日期之间的天数?
例如,在输入框中给定两个日期:
<input id="first" value="1/1/2000"/>
<input id="second" value="1/1/2001"/>
<script>
alert(datediff("day", first, second)); // what goes here?
</script>
如何在JavaScript中获得两个日期之间的天数?
当前回答
您可以使用UnderscoreJS来格式化和计算差异。
演示https://jsfiddle.net/sumitridhal/8sv94msp/
var startDate = moment(“206 -08- 29t23:35:01”); var endDate = moment(“206 -08- 30t23:35:01”); 游戏机。log (startDate); 游戏机。log (endDate); var结果= endDate。diff(startDate, hours, true); 文件。 文档全身appendChild(文档。createTextNode (resultHours)); 身体(白色空间:pre;font-family: monospace;) “https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.5.1/moment.min.js”< script src = > / < script >
其他回答
这可能不是最优雅的解决方案,但我认为它似乎用一段相对简单的代码就回答了这个问题。你不能用这样的词吗?
function dayDiff(startdate, enddate) {
var dayCount = 0;
while(enddate >= startdate) {
dayCount++;
startdate.setDate(startdate.getDate() + 1);
}
return dayCount;
}
这是假设您将日期对象作为参数传递。
// JavaScript / NodeJs answer
let startDate = new Date("2022-09-19");
let endDate = new Date("2022-09-26");
let difference = startDate.getTime() - endDate.getTime();
console.log(difference);
let TotalDiffDays = Math.ceil(difference / (1000 * 3600 * 24));
console.log(TotalDiffDays + " days :) ");
var start= $("#firstDate").datepicker("getDate");
var end= $("#SecondDate").datepicker("getDate");
var days = (end- start) / (1000 * 60 * 60 * 24);
alert(Math.round(days));
Jsfiddle示例:)
试试这个
let today = new Date(). toisostring()。片(0,10) const startDate = '2021-04-15'; const endDate = today; const diffInMs = new Date(endDate) - new Date(startDate) const diffInDays = diffInMs / (1000 * 60 * 60 * 24); alert(diffInDays);
我最近也有同样的问题,因为我来自Java世界,所以我立即开始搜索JavaScript的JSR 310实现。JSR 310是Java的日期和时间API (Java 8的标准版本)。我认为这个API设计得很好。
幸运的是,有一个直接的Javascript端口,称为js-joda。
首先,在<head>中包含js-joda:
<script
src="https://cdnjs.cloudflare.com/ajax/libs/js-joda/1.11.0/js-joda.min.js"
integrity="sha512-piLlO+P2f15QHjUv0DEXBd4HvkL03Orhi30Ur5n1E4Gk2LE4BxiBAP/AD+dxhxpW66DiMY2wZqQWHAuS53RFDg=="
crossorigin="anonymous"></script>
然后简单地这样做:
let date1 = JSJoda.LocalDate.of(2020, 12, 1);
let date2 = JSJoda.LocalDate.of(2021, 1, 1);
let daysBetween = JSJoda.ChronoUnit.DAYS.between(date1, date2);
现在daysBetween包含了间隔的天数。注意,结束日期是独占的。