javascript - JavaScript UTC 日期比较错误
问题描述
我正在比较 UTC 日期并得到这个非常奇怪的结果。
now
据我所知,肯定比start
我所知的要大,但该语句返回 false。
var start = new Date('2021-01-29T21:00:00.000Z');
var now = new Date('2021-01-29T00:16:47.797Z');
console.log(now >= start); //false
该问题似乎与午夜(00)有关,其他时间似乎也可以正常工作。
顺便说一句,我确实注意到存在一个标题非常相似的现有 stackoverflow 问题,但问题本身似乎有所不同。
解决方案
您将早上 12:16:47 或凌晨 1 点之前的 45 分钟与同一天的晚上 9 点进行比较。按时间顺序,这是完全合理的。如果您要将“现在”更改为后天,参考第二天的上午 12:16,它会返回 true。
var start = new Date('2021-01-29T21:00:00.000Z');
var now = new Date('2021-01-29T00:16:47.797Z');
console.log(now >= start); //false
var start = new Date('2021-01-29T21:00:00.000Z');
var now = new Date('2021-01-30T00:16:47.797Z');
console.log(now >= start); //true