1

我为具有datetime类型的事件设置了日期和时间,但是它的表示偏斜-2h。

我想这与日期时间的 ha javascript l10n 有关。

你能帮我保持正确的一致性吗?

在此处输入图像描述

4

1 回答 1

2

在 Sanity 后端,所有日期时间值都存储为 UTC。

例如happensAt: '2019-05-17T21:05:00.000Z'

但是,输入字段呈现从浏览器 timzone 看到的时间戳。因此,如果您的浏览器时区比 UTC 晚 2 小时,2019-06-29T19:00:00.000Z将呈现为2019-06-29 21:00.

在您的情况下,如果您希望Program文档使用浏览器本地时间而不是 UTC 值进行预览,您可以通过获取存储的 UTC 值并创建本地化字符串表示来覆盖预览。date-fns可能会有所帮助:

const format = require('date-fns/format')
const utcDate = program.happensAt // '2019-05-17T21:05:00.000Z'
const stringToDisplay = format(new Date(utcDate), "HH:mm") // '23:05'

然后,您可以在文档stringToDisplay预览中使用。

我绝对可以看到这种行为是出乎意料的,但我不能 100% 确定最佳/正确的行为是什么。任何建议都非常感谢!

于 2019-05-24T18:13:17.490 回答