比较 Javascript 和时区中的日期

Sac*_*nth 5 javascript timezone datetime date

在 Javascript 中使用 <、>、=、>= 和 <= 比较日期时,时区是否以任何方式用于比较?我希望时区被忽略。

Wol*_*olf 7

当您将时间戳转换为 JavaScriptDate对象时,时间戳字符串表示的时区部分将被考虑在内:内部值是一个简单的标量,标准化为UTC。所以在比较Date对象时不需要特殊的时区处理:

var d1 = new Date(Date.parse("Mon, 25 Dec 1995 13:30:00 +0430"));
var d2 = new Date(Date.parse("Mon, 25 Dec 1995 13:30:00 GMT"));
print("d1:", d1);
print("d2:", d2);
if (d1<d2) {
    print("d1 is less then d2");
} else if (d1>d2) {
    print("d1 is greater then d2");
} else {
    print("d1 equals to d2");
}
Run Code Online (Sandbox Code Playgroud)

这给出了这个输出:

d1: Mon Dec 25 1995 09:00:00 GMT+0000
d2: Mon Dec 25 1995 13:30:00 GMT+0000
d1 is less then d2
Run Code Online (Sandbox Code Playgroud)

[见在线演示]

如果您比较时间戳的字符串表示,您很可能会遇到麻烦。

  • 请注意,“==”不适用于“Date”对象,正如您所期望的那样 (3认同)