我想将javascript中的ISO 8601日期作为字符串进行比较,而不是为每个字符串创建Date对象并比较对象。
var date_array = ['2012-10-01','2012-11-27','2012-12-23'];
console.log(date_array[0] < date_array[1]) // gives true
console.log(date_array[1] > date_array[2]) // gives false
我这样做的原因是我认为字符串比较应该比为每个日期字符串制作对象和比较对象更快。
这些比较似乎在某些浏览器中按预期工作。我可以期待这种字母 词典字符串比较适用于所有浏览器吗?这种日期比较方法实际上比使用Date对象更快吗?
答案 0 :(得分:8)
使用该比较运算符将查看字符串值lexicographically,这意味着字典顺序。
在ASCII中,十进制数字按顺序存储为最小(0
,0x30
)到最大(9
,0x39
)。如果它们始终采用这种格式,最大值(年份)到最小值(日期)并始终0
填充到最大可能值,那么这些比较就可以了。