【发布时间】:2020-07-01 19:14:16
【问题描述】:
我有以下简单的 JS 代码:
document.getElementById ("testLastTime").innerHTML=new Date ('2020-07-01T11:59:45').toLocaleString()
在 Chrome、Edge、Firefox(所有在 Windows 上)显示正确的日期:
2020 年 7 月 1 日上午 11:59:45
但在 iOS 设备上,此日期被解释为 UTC 并显示以下日期(我在 PST):
2020 年 7 月 1 日凌晨 4:59:45
此代码是较大项目的一部分,其中本地时间(不含 TZ)的日期时间 ISO 格式字符串由服务器(Python 烧瓶)发送到客户端。
如何让所有设备上的 JS 显示相同的日期?
【问题讨论】:
-
可能我只能认为不一致可能归结为 toLocaleString() 方法而不是浏览器。尝试 toString() 方法或 toDatestring() 但格式可能不同,使用 toDatestring() 我不认为你会得到时间部分。如果您要进行大量日期操作,那么我建议您查看时刻库
-
@Chief - 使用 toString() 时的结果相同。有趣的是,在 iOS 上,时间显示为正确的 TZ: GMT-0700(PDT) 作为 Windows,但有 7 小时的偏移
-
Safari 的解析器有问题。不要使用内置解析器,请参阅Why does Date.parse give incorrect results?
-
只要在最后加上一个明确的时区,比如
new Date(…+'Z') -
@Bergi 我想我试过了。我不认为它有帮助。不管怎样,那一刻成功了
标签: javascript date flask