我为具有datetime
类型的事件设置了日期和时间,但是它的表示偏斜-2h。
我想这与日期时间的 ha javascript l10n 有关。
你能帮我保持正确的一致性吗?
在 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% 确定最佳/正确的行为是什么。任何建议都非常感谢!