javascript - 为什么日期比较在 javascript 中显示出奇怪的行为?

标签 javascript performance date

当我在 javascript 中处理日期比较时,在浏览器控制台中我执行了以下操作。

new Date() >= new Date()返回true

new Date() <= new Date()返回true

这看起来不错,因为我认为两者是相等的,如果我是对的话

new Date() == new Date()应该返回 true

有趣的是,它返回了 false。然后我也进行了以下操作

new Date() > new Date()返回false

new Date() < new Date()返回false

new Date() != new Date()返回 true

这也符合我的假设。

如果 new Date() 同时返回,则 == 应该同时返回 true使用 >= 和 <=,否则 > 或 < 应该返回 ture 作为 != 返回正确

下表包含不同情况下的预期结果和实际结果。

enter image description here

为什么 ACTUAL 结果列没有跟在其前面的任何列之后?

最佳答案

使用 Date.getTime 来比较时间戳,否则您只是在比较对象,我们知道它们不相同。

var d1 = new Date(),
  d2 = new Date();

function fullCompare(a, b) {
  console.log(a == b, a <= b, a >= b, a < b, a > b);
}
fullCompare(d1, d2);
fullCompare(d1.getTime(), d2.getTime());

关于javascript - 为什么日期比较在 javascript 中显示出奇怪的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42068820/

相关文章:

javascript - 道场: Cannot read property 'h' of undefined on AccordionContainer. js?

c# - 征求意见 : fast hashed base class for dictonary keys

java - 通过SimpleDateFormat解析系统时间报错

Excel AVERAGEIF 以 TODAY() 函数作为条件

javascript - 如何在 iframe 包含的外部页面上显示隐藏的 div

javascript - html5中视频背景的回退

javascript - jquery ui 两个draggables冲突

performance - Docker 没有得到 100% 的 CPU

MySQL 对许多使用 CASE WHEN 的 SUM() 进行平均——有更好的方法吗?

mysql - 在 mySQL 中比较不同年份的日期