0

如何比较不同时区的日期?

例如

x = "2013-12-02T10:10:17-0400" // (timezone EST) 

并将此日期与当前日期进行比较

var d = new Date(); // timezone(PST)

检查 x < d ?

4

3 回答 3

1

在 JavaScript 中处理日期和时间时,我通常使用Moment.js,这是一个专门用于此目的的库。

它的网址是http://momentjs.com/

然后你可以简单地用这一行解析给定的字符串:

// Parse the given datetime
var mydate = moment("2013-12-02T10:10:17-0400");

您还可以比较两个不同的moment值:

// Compare given datetime with the current datetime
if (moment("2013-12-02T10:10:17-0400") > moment()) {
    // ...
}

或者您可以将其转换为常规 JavaScriptDate对象:

// Parse given datetime and convert to Date object
var mydate = moment("2013-12-02T10:10:17-0400").toDate();
// Compare to current datetime
if (mydate > (new Date())) {
    // ...
}

请注意,一元运算+符也可以moment像您期望的那样处理对象。所以+moment()输出与 相同+(new Date())

它也有很好的文档记录,Moment.js 文档页面有大量的示例和有用的信息。

于 2013-11-05T20:54:15.193 回答
0

使用这个 javascript 库来操作不同时区的日期:https ://github.com/mde/timezone-js

它使用 TZ 数据库:http ://en.wikipedia.org/wiki/Tz_database

于 2013-11-04T06:45:22.430 回答
0
  1. 更好地将任何日期转换为公共时区(最好有 UTC)
  2. 现在将日期时间转换为毫秒
  3. 比较毫秒

希望你能理解

于 2013-11-04T04:40:45.157 回答