1

我正在开发一个应用程序,其中日期作为字符串存储在服务器中,并在东部时间创建。我一直在尝试使用momentjs将前端的日期显示为当地时间,并且转换似乎非常简单:

var date = moment.tz(serverDate, 'America/New_York');
var convertedDate = date.local().format();

这在正常情况下有效,但是当我在测试期间将本地时区设置为东部时间时遇到了问题(即,与服务器日期相同的时区,因此所有日期都应按原样反映在前端)。DST 不生效的日期偏移了一小时。据我了解,这是由于从一个时区转换到另一个时区时使用当前时区偏移量的时刻库。DST 期间 ET 的偏移量为 -300,而 DST 以外日期的 ET 时刻为 -240。我已经尝试过使用矩库进行转换的其他方法,但所有这些方法仍然归结为使用不正确的偏移量。

var date = moment.tz('2018-05-30T04:00:00', 'America/New_York');
var converted = date.tz(moment.tz.guess()).format(); //"2018-05-30T03:00:00-05:00"

有没有办法用 momentjs 来处理这些情况?

4

0 回答 0