当我在 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 作为 != 返回正确。
下表包含不同情况下的预期结果和实际结果。
为什么 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/