【问题标题】:Comparing dates in Javascript and timezones比较 Javascript 和时区中的日期
【发布时间】:2014-12-19 07:19:49
【问题描述】:

在 Javascript 中使用 、=、>= 和

【问题讨论】:

标签: javascript date datetime timezone


【解决方案1】:

当您将时间戳的字符串表示形式的时区部分转换为 JavaScript Date 对象时,会像您期望的那样考虑:内部值是一个简单的标量,标准化为 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");
}

给出这个输出:

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

[见online demo]

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

【讨论】:

  • 请注意 == 不能像您期望的那样对 Date 对象起作用
  • @Bergi 感谢您向我指出strange JS behaviour
猜你喜欢
  • 2021-03-06
  • 1970-01-01
  • 1970-01-01
  • 2017-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-04
  • 1970-01-01
相关资源
最近更新 更多