如何判断两个日期是在同一天还是在同一小时



JavaScript Date 对象将日期与时间进行比较,包括,因此,如果您比较: time1.getTime() === time2.getTime(),如果至少一毫秒不同,它们将是"假的"。

我们需要的是有一种很好的方法来按小时、日、周、月、年进行比较?其中一些很简单,比如年份:time1.getYear() === time2.getYear()但是对于日、月、小时,它更复杂,因为它需要多次验证或划分。

是否有任何不错的模块或优化的代码来进行这些比较?

Date 原型具有允许您检查年、月和月中的某天的 API,这看起来简单有效。

您需要从代码运行的区域设置的角度确定应用程序是否需要日期相同,或者比较是否应基于 UTC 值。

function sameDay(d1, d2) {
  return d1.getFullYear() === d2.getFullYear() &&
    d1.getMonth() === d2.getMonth() &&
    d1.getDate() === d2.getDate();
}

有相应的 UTC 获取者 getUTCFullYear()getUTCMonth()getUTCDate()

var isSameDay = (dateToCheck.getDate() === actualDate.getDate() 
     && dateToCheck.getMonth() === actualDate.getMonth()
     && dateToCheck.getFullYear() === actualDate.getFullYear())

这将确保日期在同一天。

阅读更多关于 Javascript Date to string

最新更新