日期比较运算符 - 逻辑问题
Date comparison operator - logical issue
我有这个简单的 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');
}
}
它工作正常,但我不明白日期比较。这可能是一个 "dumb" 问题,但我在 google 上找不到答案。
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()
从 00:00:00 UTC Thursday 1, January 1970
开始 milliseconds
交付时间,然后进行比较。
要比较两个日期最好使用Date.prototype.getTime()方法,即returns根据世界时指定日期的时间对应的数值。
每个日期 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');
}
比较 JavaScript 中的两个日期
使用 getTime()
转换您的时间,然后比较 More Detail ,Detail, Working Demo
我有这个简单的 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');
}
}
它工作正常,但我不明白日期比较。这可能是一个 "dumb" 问题,但我在 google 上找不到答案。 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()
从 00:00:00 UTC Thursday 1, January 1970
开始 milliseconds
交付时间,然后进行比较。
要比较两个日期最好使用Date.prototype.getTime()方法,即returns根据世界时指定日期的时间对应的数值。
每个日期 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');
}
比较 JavaScript 中的两个日期
使用 getTime()
转换您的时间,然后比较 More Detail ,Detail, Working Demo