有時,我最終會在網站前端看到一個已調整為特定時區(qū)的日期時間,並且我希望無論用戶的時區(qū)如何,都按原樣顯示它。
例如,假設我有這個日期:
2015-01-22T16:11:36.36-07:00
-07:00 表示現(xiàn)在是山區(qū)時間,MomentJs 知道這一點,並會自動為其他時區(qū)的使用者進行調整。例如,假設我用以下程式碼顯示日期時間:
moment('2015-01-22T16:11:36.36-07:00').format('l LT')
中部時間 (-06:00) 的使用者將看到時間為下午 5:11,而不是下午 4:11。我該如何告訴 MomentJs 不調整使用者的時區(qū)並按原樣顯示日期時間?
您可以使用utcOffset方法手動設定偏移量。
moment().utcOffset(0, true).format()
使用 moment 的 utc()
方法刪除時區(qū)並以世界時顯示所有內容。
moment.utc('2015-01-22T16:11:36.36-07:00').format('l LT')
這將顯示 UTC 時間,沒有任何時區(qū)偏移。如果您想顯示在使用者/伺服器時區(qū)中記錄的時間,您可以在建構 moment 實例時解析區(qū)域信息,並讓它使用解析字串中記錄的時區(qū)。
moment.parseZone('2015-01-22T16:11:36.36-07:00').format('l LT');
使用這兩種方法中的任何一種,您都應該考慮以某種方式標記時間以反映時間對應的時區(qū)。如果不這樣做可能會給最終用戶帶來很多困惑。