首页 > 解决方案 > 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 问题,但问题本身似乎有所不同。

标签: javascriptdate

解决方案


您将早上 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


推荐阅读