JavaScript时间比较

yyyy-mm-dd格式的时间可以直接进行比较吗?('2017-12-10' > '2017-09-10')

阅读 4.3k
8 个回答

最好不要这样比较,('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'

如果都是规范格式,可以直接比较

你这是在比较两个字符串呀。

要么,实例化为Date对象,去比较时间戳;要么,分别分离出年月日,然后挨个比较数字

字符串 比较是比较键盘的unicode值  也就是charCode  它比较是通过每个字符进行比较 而不是针对整体,
按你需求应该是比较事件,所以比较结果基本为错误的


你应该转换为时间戳 或者对应去比较它们年月日的值 来进行时间的比较

先把两个时间转成时间戳,比较时间戳

不能比较,你这个字符串且里面带-,有一种是可以就是YYMMDD:20170220 20170201这种可以,你转换成毫秒之后比较吧。就是这样的

new Date('2017-09-10').valueOf() 得到 1505001600000
new Date('2017-12-10').valueOf() 得到 1512864000000
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题