簡體   English   中英

時區獨立日期 javascript

[英]Timezone independent dates javascript

使用 javascript/react native + redux 我需要以一種時間格式保存時間戳,該格式在保存日期時知道本地時間,但在另一個時區讀取相同日期時不知道。

假設一位用戶在一天內向西環游世界,每小時保存一個時間戳,所有不同的時區,時間均為當地時間 2021 年 1 月 30 日 18:00。 在 18:00 產生 24 個時間戳。

date- fns 中的isWithinInterval中使用 function 以類似於下面的方式,所有時間戳都應該返回 true。

isWithinInterval(
  timestamp,
  {start: new Date(2021,0,30,17,30}, end: new Date(2021,0,30,18,30)}, 
) // -> true

一個 go 如何做到這一點? 最好采用 react-redux 兼容(可序列化)方式。 默認情況下,您的日期 object 將根據您設備上的本地時間以 UTC 格式保存。

我很難理解日期對象,以至於我花了很長時間才明白這個問題實際上是“date-fns-tz”package 的全部內容。 這就是我目前解決它的方式:

  1. 使用以下命令創建與本地時間相同的 UTC 時間:
import {zonedTimeToUtc} from "date-fns-tz"
const myDate = new Date()  // eg 2021-02-03 10:00 UTC +5
const localTimeIdenticalUtc = zonedTimeToUtc(localDateObject, localTimeZone)  // 2021-02-03 10:00 UTC +-0
  1. 當我想使用 UTC 日期時,無論我在哪個時區,我都會將它轉移回相同的 localDate。
    import {utcToZonedTime } from "date-fns-tz"
    const zonedTimeToUtc(localTimeIdenticalUtc, localTimeZone) // 2021-02-03 10:00 UTC +5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM