Как JavaScript сравнивает строки Date? - PullRequest
1 голос
/ 14 марта 2019

При сравнении двух строк примерно так:

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

Я получаю значение true, чего я и ожидаю.

Мне любопытно узнать немного больше о том, как это работает. Это сравнение двух дат или какое-то другое сравнение, которое я не совсем вижу?

Ответы [ 2 ]

1 голос
/ 14 марта 2019

Сравнение строк происходит символ за символом

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'))
0 голосов
/ 14 марта 2019

Строки даты - это просто строки, поэтому они подчиняются правилам сравнения строк javascript.

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

Но будьте осторожны, потому что, если вы полагаетесь на это сравнение, потому что, если две строки не имеют одинаковую длину, они будутпривести к неожиданному поведению, как это:

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

Если вы хотите сравнить даты, вам лучше положиться на Date объект или использовать момент js

...