当您创建new Date(2011, 9, 16, 12)
,它得到10月16日在12:00在任何浏览器的时区是。然后tz
将其转换为指定的时区,并且toDate()
将转换回日期对象(使用浏览器的时区)。
如果你想创建10月16日在12:00在洛杉矶时区,有没有必要使用new Date
。您可以直接使用moment.tz
:
moment.tz('2011-10-16 12:00', 'America/Los_Angeles')
输出将是:
太阳2011年10月16日12:00:00 GMT-0700
您还可以创建日期值传递而不是字符串(check the docs看到所有选项):
moment.tz([2011, 9, 16, 12], 'America/Los_Angeles')
moment.tz({ year: 2011, month: 9, day: 16, hour: 12 }, 'America/Los_Angeles')
以上所有产生的日期相同(10月16日th 2011 at 12:00 in洛杉矶时区)。
请注意,这些值为零索引(1月为零),而在字符串中,月份为单索引(1月为1
)。
调用上述toDate()
将日期/时间转换到浏览器的默认时区也是如此。
只是一个想法......你使用的是moment.js,所以你不需要处理'日期'古怪。如果你用“新日期(2011,9,16,12)”喂食它,那么你就打败了总体目标。 –
您是否将时区列表添加到moment.tz对象? –
@AnkitSolanki我没有,他们做的,我不是https://momentjs.com/timezone/ – Yoda