yyyy-mm-dd格式的时间可以直接进行比较吗?('2017-12-10' > '2017-09-10')
直接比较就是字符串比较, 从开始依次对比每个字符
'2017-12-10' > '2017-09-10'
'2017-12-10' < '2017-9-10'
'2017-12-30' > '2017-12-09'
'2017-9-30' < '2017-9-9'
字符串 比较是比较键盘的unicode值 也就是charCode 它比较是通过每个字符进行比较 而不是针对整体,
按你需求应该是比较事件,所以比较结果基本为错误的
你应该转换为时间戳 或者对应去比较它们年月日的值 来进行时间的比较
不能比较,你这个字符串且里面带-
,有一种是可以就是YYMMDD:20170220 20170201
这种可以,你转换成毫秒之后比较吧。就是这样的
new Date('2017-09-10').valueOf() 得到 1505001600000
new Date('2017-12-10').valueOf() 得到 1512864000000
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
最好不要这样比较,('2017-12-10' > '2017-09-10')这个是没问题的,可一旦出现日期格式变成这样 ('2017-02-02' > '2017-1-11'),你就会发现结果不符合预期了,因为字符串的比较是从左到右一位一位比较的,2017-02的0与2017-1的1比较结果就会错误,所以严谨做法还是应该转成时间戳。