为啥 javascript date1 == date2 不起作用? [复制]

Posted

技术标签:

【中文标题】为啥 javascript date1 == date2 不起作用? [复制]【英文标题】:why javascript date1 == date2 not working? [duplicate]为什么 javascript date1 == date2 不起作用? [复制] 【发布时间】:2014-03-20 19:14:32 【问题描述】:

我有两个 javascript 日期,dt 和 Frefdate。在萤火虫中,两个值都是 Date Fri Apr 08 2005 00:00:00 GMT+1000 (AUS Eastern Summer Time)。

但是 dt == Frefdate 是假的。 我必须使用 dt.valueOf() == Frefdate.valueOf() 来比较这两个日期。为什么?

在 w3schools 网站中,日期比较可以是 date1 > date2。(见http://www.w3schools.com/js/js_obj_date.asp)。

谢谢。

【问题讨论】:

两个日期是两个不同的对象。 它是false,原因相同 == false:它们是不同的对象。 .valueOf 返回一个数字,如果两个数字具有相同的值,则它们相等。 【参考方案1】:

这两个日期是两个不同的对象,因此它们不是“对象相等”。 JavaScript 允许您使用 == 比较字符串和数字,但所有其他类型都作为对象进行比较。

【讨论】:

【参考方案2】:

当您比较两个不同的日期对象时,您不是在比较它们的值,而是在比较它们实际上是同一个对象。

即使两个日期对象设置为相同的日期和时间,它们也是两个独立的实例。可以把它想象成比较对内存中结构的引用。每个的内存位置都会不同。

【讨论】:

以上是关于为啥 javascript date1 == date2 不起作用? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

easy uiDatebox插件显示日期错误

easy uiDatebox插件显示日期错误

JavaScript比较俩日期字符串大小

如何使用 JavaScript 写入 txt 文件

python 计算时间差 字符串

mysql中多个字段中的最大值