在javascript中比较ISO 8601日期字符串

ste*_*red 9 javascript string-comparison

我想将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
Run Code Online (Sandbox Code Playgroud)

我这样做的原因是我认为字符串比较应该比为每个日期字符串制作对象和比较对象更快.

这些比较似乎在某些浏览器中按预期工作.我可以期望这种按字母 顺序排列的词典 字符串比较适用于所有浏览器吗?这种日期比较方法实际上比使用Date对象更快吗?

ale*_*lex 8

使用比较操作将着眼于字符串值字典顺序,这意味着字典顺序.

在ASCII中,十进制数字按顺序存储为最小(0,0x30)到最大(9,0x39).如果它们始终采用这种格式,最大值(年份)到最小值(日期)并且总是0填充到最大可能值,那么这些比较就可以了.