【发布时间】:2021-01-22 05:25:24
【问题描述】:
目前我正在使用date-fns 服务器端在保存到数据库之前将元数据添加到某些记录:
function getDateFormat(serverMillisTimestamp) {
const current_unix = Math.round(serverMillisTimestamp / 1000)
return {
year: format(fromUnixTime(current_unix), 'yyyy').toString(),
monthOfYear: format(fromUnixTime(current_unix), 'MMMM')
.toString()
.toLowerCase(),
isoWeekOfYear: format(fromUnixTime(current_unix), 'II').toString(),
dayOfMonth: format(fromUnixTime(current_unix), 'dd').toString(),
isoDayOfWeek: format(fromUnixTime(current_unix), 'iiii')
.toString()
.toLowerCase()
}
}
但是在客户端,当我使用相同的代码生成 year、monthofYear、isoWeekOfYear、dayOfMonth 和 isoDayOfWeek 以便我可以从数据库中查询记录时,存在不匹配,因为格式使用区域设置时区来获取这些值。
我如何利用date-fns 使格式化的值与时区无关?
【问题讨论】:
-
我认为您不能只忽略时区。您已经为您的服务器和前端应用程序、UTC 或其他东西使用了一些公共时区。然后在此处查看文档:date-fns.org/v2.16.1/docs/Time-Zones.
-
这是有道理的。我将如何格式化为 UTC 时区
标签: javascript date-fns