javascript - 日期比较运算符 - 逻辑问题

标签 javascript date date-comparison

我有这个简单的js函数:

function checkTime() {  
  var d1 = new Date();
  var d2 = new Date('April 10, 2017 12:11:00');

  if (d1 < d2) {
    $('#modalnew').modal('show');
  } else {
    window.location.replace('https://www.example.php');
  }
}

它工作正常,但我不明白日期比较。这可能是一个“愚蠢”的问题,但我在谷歌上找不到答案。 F.E.: - 没有代码,只是一个例子 -

d1 (now) = April 10, 2017 12:22:00
d2 (date set) = April 10, 2017 12:11:00

为什么d1小于d2并激活window.location?按照逻辑顺序 d1,它比 d2 晚 11 分钟。它到底是根据哪个参数进行比较的?

最佳答案

就您而言d1不是小于而是大于d2这是预期的结果,因此 window.location.replace已执行。

将其评估的日期与 if (d1.valueOf()< d2.valueOf()) 进行比较。 valueOf()送达时间 milliseconds00:00:00 UTC Thursday 1, January 1970 开始然后进行比较。

关于javascript - 日期比较运算符 - 逻辑问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43320740/

相关文章:

javascript - 试图了解 D3 .data 键功能的工作原理

java - 将 joda.time.DateTime 转换为 java.sql.Date 并保留时区

javascript - 检查时隙之间的时间

PostgreSql + 日期格式YYYY-MM-DD转日、日月年

performance - 为什么这个 Java 代码有这个年龄验证日期比较?

javascript - 如何确定特定时间是否在javascript中的给定时间范围之间

javascript - 如何在同一个 php 页面上显示和隐藏多个表单

javascript - 更改 Slick slider 中的箭头按钮

javascript - 如何使用jquery扩展对象

git - 如何根据每次提交的日期将两个分支 merge 为一个分支?