yyyy-mm-dd格式的时间可以直接进行比较吗?('2017-12-10' > '2017-09-10')
字符串 比较是比较键盘的unicode值 也就是charCode 它比较是通过每个字符进行比较 而不是针对整体, 按你需求应该是比较事件,所以比较结果基本为错误的 你应该转换为时间戳 或者对应去比较它们年月日的值 来进行时间的比较
先把两个时间转成时间戳,比较时间戳
不能比较,你这个字符串且里面带-,有一种是可以就是YYMMDD:20170220 20170201这种可以,你转换成毫秒之后比较吧。就是这样的
-
YYMMDD:20170220 20170201
new Date('2017-09-10').valueOf() 得到 1505001600000 new Date('2017-12-10').valueOf() 得到 1512864000000
如果都是规范格式,可以直接比较
你这是在比较两个字符串呀。
要么,实例化为Date对象,去比较时间戳;要么,分别分离出年月日,然后挨个比较数字。
不能,必须时间戳
最好不要这样比较,('2017-12-10' > '2017-09-10')这个是没问题的,可一旦出现日期格式变成这样 ('2017-02-02' > '2017-1-11'),你就会发现结果不符合预期了,因为字符串的比较是从左到右一位一位比较的,2017-02的0与2017-1的1比较结果就会错误,所以严谨做法还是应该转成时间戳。
直接比较就是字符串比较, 从开始依次对比每个字符
'2017-12-10' > '2017-09-10' '2017-12-10' < '2017-9-10' '2017-12-30' > '2017-12-09' '2017-9-30' < '2017-9-9'