當您創建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