为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

如何计算两个日期之间的天数?我正在计算“从”到“日期”之间的天数。例如,如果开始日期为13/04/2010,而截止日期为15/04/2010,则结果应该是如何使用JavaScript获得结果?
查看完整描述

3 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

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)));


查看完整回答
反对 回复 2019-07-15
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

下面是一个这样做的函数:

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);}


查看完整回答
反对 回复 2019-07-15
?
动漫人物

TA贡献1815条经验 获得超10个赞

我用的是这个。如果您只是减去日期,它将无法跨夏令节约时间边界(如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;}


查看完整回答
反对 回复 2019-07-15
  • 3 回答
  • 0 关注
  • 791 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信