12

我想将 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 对象更快吗?

4

1 回答 1

11

使用该比较运算符将按字典顺序查看字符串值这意味着字典顺序

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

于 2012-12-05T03:03:56.560 回答