直接用比较运算符比较时间是否会有副作用

已知我们在比较字符串大小时直接用比较运算符操作会有问题,比如

'9000' > '10000' // true

可以将字符串转化为数字再比较或者相减后和0比大小

'9000' - 0 > '10000' - 0 // false
'9000' - '10000' > 0 // false

那如果是两个时间进行大小比较,可否直接用比较运算符进行比较

'2019-05' > '2019-06' // false

是否有必要将时间转化为毫秒然后再按数字大小进行比较=。=

new Date('2019-05').getTime() > new Date('2019-06').getTime() // false
阅读 1.3k
1 个回答

个人认为没有必要,如果你的时间格式是YYYY-MM-DD HH:mm:ss 的话,首先位数是一样的前提下,那么,最新的时间肯定是有一个位是大于旧的时间,那么大于肯定是正确的,比如"2020-01-01 00:00:00" > "2019-12-31 23:59:59"肯定是true
题目中:"9000">"10000"是因为比较第一位9大于1,如果位数相同的话,那么就是"09000" > "10000"false。所以保证位数相同很重要

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题