比较javascript日期

比较javascript日期,javascript,Javascript,我有两个javascript日期,我想知道它们是否是相同的日期。这两个日期可以是同一个日期,但时间不同:日期1可以设置为下午3点,而日期2可以设置为凌晨1点 我尝试了这两种选择,但都不起作用: // doesn't work when same date but different time if (Date1.getTime() === Date2.getTime()) // gives true when dates are in different months if (Date1.g

我有两个javascript日期,我想知道它们是否是相同的日期。这两个日期可以是同一个日期,但时间不同:日期1可以设置为下午3点,而日期2可以设置为凌晨1点

我尝试了这两种选择,但都不起作用:

// doesn't work when same date but different time
if (Date1.getTime() === Date2.getTime()) 

// gives true when dates are in different months
if (Date1.getUTCDate() === Date2.getUTCDate())  
如果Date1和Date2是同一天,而不考虑一天中的实际时间,那么实现这一点的最佳方法是什么


谢谢。

为什么不使用
toDateString
进行比较?

您可以获得日期的日期、月份和年份,并检查它们是否相等

if (date1.getUTCDate() == date2.getUTCDate() && 
    date1.getUTCMonth() == date2.getUTCMonth() && 
    date1.getUTCFullYear() == date2.getUTCFullYear()) {
 // dates are on the same day
}
首先以毫秒为单位计算时间。然后将日期舍入为天(自1970-01-01起),并进行比较。

对日期对象使用功能,将
小时
分钟
毫秒
设置为零:

var today=new Date().setHours(0,0,0,0)

对于您的特定示例,您可以使用

if(date1.setHours(0,0,0,0)==date2.setHours(0,0,0,0))

其中
date1
date2
是日期对象

var today1 = new Date().setHours(0,0,0,0); 
var today2 = new Date().setHours(1,0,0,0); //notice the 1 here

var today3 = new Date().setHours(0,0,0,0); 
var today4 = new Date().setHours(0,0,0,0);

console.log(today1 === today2); //returns false
console.log(today3 === today4); //returns true
根据本地时间设置指定日期的小时数,以及 返回自1970年1月1日00:00:00 UTC以来的毫秒数 直到更新日期实例表示的时间

var today1 = new Date().setHours(0,0,0,0); 
var today2 = new Date().setHours(1,0,0,0); //notice the 1 here

var today3 = new Date().setHours(0,0,0,0); 
var today4 = new Date().setHours(0,0,0,0);

console.log(today1 === today2); //returns false
console.log(today3 === today4); //returns true

UTC比较有什么问题吗?我以前在UTC和Local上被烧坏了。应该是getDate()吗??我编辑你的答案。这似乎是最好的办法。@frenchie:是的,你说得对
getDay()
获取一周中不起作用的一天。谢谢你修好它!:)没问题;之所以被接受,是因为它似乎是最简洁的。@frenchie-这个概念比单独检查日期的每个元素要干净得多。没错,但看看行数和涉及的体操。事实上,这是个人偏好的问题,但我更喜欢更少的代码。“我知道这是可行的,这就是为什么我投了更高的票。”弗兰奇-我完全理解。尽管行数只是一个“示例”,如果(date1.setHours(0,0,0,0)==date2.setHours(0,0,0,0))其中
date1
date2
是日期对象,则可以将行数减少到
。不管怎样,我都无法反驳个人偏好:DYup,编程部分是科学,部分是艺术。谢谢你的回答;我可能会在未来代码的其他部分使用date1.setHours(0,0,0,0)的概念。快乐编码!