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
当比较两个字符串时,像这样:
'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