【发布时间】:2021-04-16 05:45:50
【问题描述】:
使用 javascript/react native + redux 我需要以一种时间格式保存时间戳,在保存日期时知道本地时间,但在另一个时区读取相同日期时不知道。
假设一位用户在一天内向西环游世界,每小时保存一个时间戳,所有时区均在当地时间 2021 年 1 月 30 日 18:00 时。在 18:00 产生 24 个时间戳。
以类似于下面的方式使用 isWithinInterval 和 date-fns 之类的函数,所有时间戳都应返回 true。
isWithinInterval(
timestamp,
{start: new Date(2021,0,30,17,30}, end: new Date(2021,0,30,18,30)},
) // -> true
如何做到这一点?最好以 react-redux 兼容(可序列化)的方式。默认情况下,您的日期对象将根据您设备上的本地时间以 UTC 格式保存。
【问题讨论】:
-
en.wikipedia.org/wiki/ISO_8601
2021-01-30T18:00:00+00:00是包含时区的时间戳格式。您可以将时间戳存储为2021-01-30T18:00:00+00:00、2021-01-30T18:00:00+01:00、2021-01-30T18:00:00+02:00,...并删除检查时区。 -
@ThomasSablik — 您走在正确的轨道上,但旅行者必须从 +14(莱恩群岛)的国际日期变更线开始向西而不是向东旅行。从 18:00:00+0 开始向东行驶 1 小时意味着当地时间为 20:00:00+1(区域时间为 1 小时,行程为 1 小时),时间复合。他们取消了向西旅行。 :-)
标签: javascript date react-redux timezone date-fns