JavaScript 如何比较日期字符串?

How does JavaScript compare Date strings?

当比较两个字符串时,像这样:

'03-15-2019' < '03-16-2019'

我得到的值是 true,这正是我所期望的。

我很想了解更多有关其工作原理的信息。这是在比较两个日期,还是在进行其他一些我不太清楚的比较?

逐个字符地进行字符串比较

console.log('aaaa' < 'b')
console.log('aa' < 'ab')
console.log('ab' < 'aa')

'03-15-2019' < '03-16-2019' 这只是字符串比较而不是日期比较,如果你想比较日期你需要将它更改为日期对象而不是比较

console.log(new Date('03/15/2019') < new Date('03/16/2019'))

日期字符串只是字符串,因此它们遵循 javascript 字符串比较规则。

console.log('04-13-2019' < '04-15-2019') #true

但是这里要小心,因为如果你依赖这个比较,因为如果两个字符串的长度不一样,它会导致像这样的意外行为:

console.log('ab' < 'b') #true

如果你想比较日期,你最好依赖 Date 对象或使用 moment js