直接比较Javascript ISO Date Strings安全吗?

时间:2018-03-16 18:41:24

标签: javascript date

直接比较ISO Date Strings是否安全:

"2018-03-16T18:00:00.000z" > "2018-04-16T18:00:00.000z" // false

只要使用前导零(正确的ISO格式),这种比较是安全的,并且不需要将值转换为日期对象。我忽略了什么吗?

2 个答案:

答案 0 :(得分:1)

使用ISO 8601时间的给定格式

2018-03-16T18:00:00.000Z
                       ^

您可以使用直接字符串比较,因为给定的时区是

  

世界协调时间(UTC)

     

如果时间是UTC,请在没有空格的时间后直接添加Z. Z是零UTC偏移的区域指示符。 " 09:30 UTC"因此表示为" 09:30Z"或" 0930Z"。 " 14:45:15 UTC"将是" 14:45:15Z"或" 144515Z"。

答案 1 :(得分:0)

回答你的问题比较日期很棘手。我喜欢转换成更具体的东西。也许不是最有效的答案,但它适用于比较日期。

var d = new Date();
var d1 = new Date();

console.log(d);
console.log(d1);

console.log(d.getTime());
console.log(d1.getTime());
console.log(d.getTime() === d1.getTime()); // true

将两者都转换为数字以进行更有效的比较。从物体本身拉出属性。

http://jsbin.com/siwokibovi/edit?js,console