日期:2014-05-16  浏览次数:20417 次

关于javascript中的日期比较
在javascript中一定要通过Date.parse()函数进行转换后才能比较吗,通过两个日期字符串(都是"YYYY-MM-DD")直接进行字面量比较,是否可以直接比较。网络查找都是通过Date.parse()进行比较,太罗嗦。想请问大家直接进行日期字符串比较是否正确,若不正确会存在哪些问题,举例为证

------解决方案--------------------
如果格式一样,不足2位补上0可以比较,要是没补0就无法字符串进行比较了

    var d1 = '2013-10-23', d2 = '2013-09-23';
    alert(d1 > d2)//true
    d2 = '2013-9-23'
    alert(d1 > d2)//false

------解决方案--------------------
引用:
格式是一样的,因为在对比之前的话是进行过格式化的并进行补0操作的,还有个问题咨询一下两个日期相减看来是不是只能先转换成日期对象,再进行相减,再进行转换操作


最好是转成时间对象,这样相减得到毫秒,要不你就要自己手动拆分成数组,写逻辑计算时间了
------解决方案--------------------
最好是转成时间对象.可靠
------解决方案--------------------
引用:
如果格式一样,不足2位补上0可以比较,要是没补0就无法字符串进行比较了

    var d1 = '2013-10-23', d2 = '2013-09-23';
    alert(d1 > d2)//true
    d2 = '2013-9-23'
    alert(d1 > d2)//false


你这个是2个字符串的比较。
个人觉得还是转换成日期字段,然后比较。
------解决方案--------------------
如果你不转换为时间对象,就像楼1举的例子,实际上是在比较两个字符串,只不过是因为在比较到月的字符的时候1比0排序靠后,所以才返回为true
------解决方案--------------------
格式一致的话直接比较字符串就可以了啊