0

我正在制作一个网络应用程序,我的用户需要在特定时区选择特定时间。例如,选择2013 年 11 月 8 日中午在纽约市。不幸的是,我无法在 momentjs 对象中正确设置日期。

这是一个重现我的问题的jsfiddle。我究竟做错了什么?

var data = {date: 8, hour: 12, minute: 0, month: 10, year: 2013}
var ret = moment({}).tz("America/New_York");
_.each(data, function(val,key){
   ret.set(key, val);
});
$("h1").text("the date should be the 8 th but it is the "+ ret.utc().get("date")) // 7

非常感谢,

迪迪埃

4

1 回答 1

0

您的脚本有点复杂,但它似乎确实在小提琴中工作。至少,我在 Google Chrome 中没有收到错误消息。其他浏览器可能会有所不同。

但是,它并不总是会产生正确的结果。当您初始化它时,您将在纽约设置一个“现在”的时刻。但是,您一次替换一个属性的值。这没有考虑到由于夏令时波动,“现在”的偏移量可能与您喂它的日期不同。

Moment-timezone 目前没有特定区域的时间创建时刻的功能。这已在issue #11中提出,并且有一个 pull-request 已在#25中合并,但尚未发布。如果您想从源代码中使用开发版本,您可以现在尝试一下,如下所示:

var m = moment.tz("2013-10-08T12:00:00","America/New_York");
于 2013-11-01T21:45:04.163 回答