当前位置:  开发笔记 > 编程语言 > 正文

在Javascript中计算日期差异的最佳方法是什么

如何解决《在Javascript中计算日期差异的最佳方法是什么》经验,为你挑选了2个好方法。

我在Javascript中执行函数,如VisualBasic DateDiff.

你给两个日期和返回的时间间隔(秒,分钟,天等...)

DateDiff(ByVal Interval As Microsoft.VisualBasic.DateInterval, _
  ByVal Date1 As Date, ByVal Date2 As Date) as Long

那么计算Javascript日期差异的最佳方法是什么?



1> anand.trex..:

像这样使用Date对象:

function DateDiff(var /*Date*/ date1, var /*Date*/ date2) {
    return date1.getTime() - date2.getTime();
}

这将返回两个日期之间的毫秒数差异.将其转换为秒,分钟,小时等应该不会太困难.


你不需要使用`getTime`.如果你只是`return date1 - date2;`,结果是一样的.(这不是特定于实现的事情,它在规范中,尽管有点间接).
我建议使用`return date2.getTime() - date1.getTime();`所以日期的顺序是预期的(否则将返回一个负数).
@PéterVarga为什么要把它包装在另一个`new Date()`中?如果你描述OP感兴趣的结果是'0`,而不是`new Date(0);`

2> VonC..:

如果您遵循本教程,一种方法是使用:

Date.getTime()

你会在这里找到一个完整的javascript函数,完成日期验证.

话虽如此,正如5年后Rafi B.评论的那样," 在javascript中获得2个日期之间的区别? "更准确.

var _MS_PER_DAY = 1000 * 60 * 60 * 24;

// a and b are javascript Date objects
function dateDiffInDays(a, b) {
  // Discard the time and time-zone information.
  var utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate());
  var utc2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate());

  return Math.floor((utc2 - utc1) / _MS_PER_DAY);
}

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有