猿问

如何计算两个日期之间的天数?

如何计算两个日期之间的天数?

  1. 我正在计算“从”到“日期”之间的天数。例如,如果开始日期为13/04/2010,而截止日期为15/04/2010,则结果应该是

  2. 如何使用JavaScript获得结果?


慕妹3146593
浏览 792回答 3
3回答

繁星coding

var oneDay = 24*60*60*1000; // hours*minutes*seconds*millisecondsvar firstDate = new Date(2008,01,12);var secondDate = new Date(2008,01,22); var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)));

素胚勾勒不出你

下面是一个这样做的函数:function days_between(date1, date2) {     // The number of milliseconds in one day     var ONE_DAY = 1000 * 60 * 60 * 24;     // Convert both dates to milliseconds     var date1_ms = date1.getTime();     var date2_ms = date2.getTime();     // Calculate the difference in milliseconds     var difference_ms = Math.abs(date1_ms - date2_ms);     // Convert back to days and return     return Math.round(difference_ms/ONE_DAY);}

动漫人物

我用的是这个。如果您只是减去日期,它将无法跨夏令节约时间边界(如4月1日至4月30日或10月1日至10月31日)。这减少了所有的时间,以确保您有一天,并消除任何DST问题使用UTC。var nDays = (    Date.UTC(EndDate.getFullYear(), EndDate.getMonth(), EndDate.getDate()) -                  Date.UTC(StartDate.getFullYear(), StartDate.getMonth(), StartDate.getDate())) / 86400000;作为一项职能:function DaysBetween(StartDate, EndDate) {   // The number of milliseconds in all UTC days (no DST)   const oneDay = 1000 * 60 * 60 * 24;   // A day in UTC always lasts 24 hours (unlike in other time formats)   const start = Date.UTC(EndDate.getFullYear(), EndDate.getMonth(), EndDate.getDate());   const end = Date.UTC(StartDate.getFullYear(), StartDate.getMonth(), StartDate.getDate());   // so it's safe to divide by 24 hours   return (start - end) / oneDay;}
随时随地看视频慕课网APP
我要回答