繁体   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