【发布时间】:2023-03-21 09:58:01
【问题描述】:
【问题讨论】:
-
如果您的问题已回答,请将其标记为已回答?
标签: localization sanity l10n.js
【问题讨论】:
标签: localization sanity l10n.js
在 Sanity 后端,所有 datetime values 都存储为 UTC。
例如happensAt: '2019-05-17T21:05:00.000Z'.
但是,输入字段会呈现从浏览器 timzone 看到的时间戳。因此,如果您的浏览器时区比 UTC 晚 2 小时,2019-06-29T19:00:00.000Z 将呈现为 2019-06-29 21:00。
在您的情况下,如果您希望 Program 文档使用浏览器本地时间而不是 UTC 值转换为 preview,您可以通过获取存储的 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'
然后您可以在文档的preview 中使用stringToDisplay。
我绝对可以看到这种行为是出乎意料的,但我不能 100% 确定最佳/正确的行为是什么。任何建议都非常感谢!
【讨论】: