我有这个简单的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()
送达时间 milliseconds
自 00:00:00 UTC Thursday 1, January 1970
开始然后进行比较。
关于javascript - 日期比较运算符 - 逻辑问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43320740/