2

我希望能够创建一个日期对象,其时间类似于“2011 年圣诞节洛杉矶午夜”。

我使用了很棒的moment.js和更好的moment-timezone,但是默认的 Date 类和 moment 构造函数都没有将时区作为参数。

我已经能够通过使用格式化的 RFC2822 字符串来伪造它,如下所示:

 d = new Date("12-25-2011 PST")

...但它要求我知道 12 月 25 日是标准时间。这给出了不同的答案:

d = new Date("12-25-2011 PDT")

理想情况下,我想使用像“America/Los_Angeles”这样的地理风格时区。

4

2 回答 2

1

请参阅时刻时区#11#25

如果你从 GitHub 源获得最新的开发,你可以这样做:

moment.tz('2011-12-25T00:00:00','America/Los_Angeles').utc().format()

它尚未发布的唯一原因是因为我们仍在根据#27决定如何处理不明确或无效的输入。

于 2013-10-21T21:41:22.660 回答
1

好的,我想我知道该怎么做。我正在使用来自 npm的出色时区包。这是粗略的想法:

var tz = require("timezone");

var dateInZone = function(dt, zone) {
    return new Date(tz(dt, zone, require("timezone/"+zone), "%FT%T%^z"));
};

console.log(dateInZone([2011, 12, 25], "America/Los_Angeles"));
于 2013-10-22T13:42:14.447 回答