【发布时间】:2017-10-25 09:01:10
【问题描述】:
一个项目的业务需求如下:
用户需要根据当地时区查看历史日期。目前,我们在数据库中存储两个日期:UTC 和本地时间。用户需要查看(历史)时区的日期。
例子:
数据库值:2017-10-25T12:00:00 (UTC)、2017-10-25T09:00:00(日期 注册)。
根据这些值,我们希望用户查看他所在时区的日期。
2017-10-25T12:00:00 (UTC) 到 CEST(时区偏移 +0200)=> 2017-10-25T14:00:00.
但是,当用户在不适用夏令时的日期查看同一日期时,用户将看到 2017-10-25T13:00:00,因为 CET 是 +0100。
我正在寻找一种方法,可以在 UTC 日期为用户的语言环境获取 UTC 的偏移量。
简而言之:获取用户本地时区中历史日期的 UTC 偏移量。
编辑:Moment.js 和 Moment_timezone.js 等库被接受!
【问题讨论】:
-
如果仍需要将 UTC 时间转换为本地时间,为什么还要存储两个值? Date 对象应自行处理转换,因此
new Date(Date.parse('2017-10-25T12:00:00'));将返回包含对应于 2017-10-25T12:00:00 UTC 的本地时间的 Date 对象。 -
两个值的存储是为了满足业务需求。他们希望有两个报告日期。
-
@Walk - 小心。 ECMAScript 规范已经更改了几次,因此可能被认为是本地时间,或者可能被认为是 UTC。在末尾添加
Z将确保它在所有环境中都被解析为 UTC。
标签: javascript date datetime timezone momentjs