我有这个简单的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');
}
}
它工作正常,但我不了解日期比较。这可能是一个愚蠢的&#34;问题,但我无法在谷歌找到答案。 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分钟。它与哪个参数完全比较?
答案 0 :(得分:2)
在您的情况下d1
不小于d2
,这是预期的结果,因此执行了window.location.replace
。
将评估日期与(d1.valueOf()< d2.valueOf())
进行比较。从valueOf()
开始,milliseconds
会在00:00:00 UTC Thursday 1, January 1970
内提供时间,然后对其进行比较。
答案 1 :(得分:2)
要比较两个日期,最好使用Date.prototype.getTime()方法,该方法根据通用时间返回与指定日期时间对应的数值。
每个日期d1
和d2
的结果编号将更好地解释短期和更长的日期。
代码:
function checkTime() {
var d1 = new Date();
var d2 = new Date('April 10, 2017 12:11:00');
d1.getTime() < d2.getTime()
? $('#modalnew').modal('show')
: window.location.replace('https://www.example.php');
}
答案 2 :(得分:-1)
比较JavaScript中的两个日期
使用getTime()
转换您的时间,然后比较More Detail,Detail,Working Demo