Jon*_*Jon 2 javascript timezone momentjs
我有一个字符串“2019 年 1 月 24 日 12:00 PST”,其中时间设置为浏览器的时区。我将如何使用时刻将其转换为另一个时区(即 - America/New_York),然后获取该时区的时间?
因此,在上面的示例中,我有字符串“Jan 24, 2019 12:00 PST”,其中时区位于浏览器的时区(西雅图)中。我试图在将其转换为纽约时区时获取“2019 年 1 月 24 日 15:00”。
怎么样:
var s = "Jan 24, 2019 12:00 PST";
var d = new Date(s);
var m = moment(d).tz("America/New_York");
console.log(m.format("MMM DD Y, hh:mm z"));
Run Code Online (Sandbox Code Playgroud)
这里唯一担心的是你从哪里得到那根绳子。据我所知,该特定字符串适用于每个浏览器。但是 Date 构造函数似乎不支持美国以外的命名偏移量,例如“PST”,因此,如果您得到欧洲中部时间的 CEST 之类的偏移量,那就不太有效了。在这种情况下,只需截掉 PST 并使用 Moment 的字符串解析函数对其进行解析即可。由于您已经知道该字符串是在用户所在的同一区域中生成的,因此您无论如何都不需要它。
作为所有这些的替代方案,完全避免需要该字符串,或者从源服务器获取 ISO 中的日期,或者如果该字符串来自其他 Javascript 片段,则只需获取该 Date 对象并将其直接传递给 Moment。