提问人:madmonkey 提问时间:8/19/2023 更新时间:8/19/2023 访问量:31
为什么这些日期构造函数会产生不同的结果?
Why do these date constructors produce different results?
问:
数据库中的日期格式:2023-08-19T04:03:57
上面的条目是在美国东部时间凌晨 12:03 进行的。
new Date("2023-08-19T04:03:57")
= 2023-08-19T08:03:57.000Z
这并没有给我预期的结果。 将给我美国东部标准时间凌晨 4:03。.toLocaleString
如果我手动附加“Z”:
new Date("2023-08-19T04:03:57Z")
= 2023-08-19T04:03:57.000Z
我得到了预期的结果,可以正确使用本地化函数。
为什么会发生这种情况,有没有更好的解决方案,每次我需要在客户端计算机上使用这些时间戳时手动附加“Z”?
答: 暂无答案
评论
2023-08-19T04:03:57
是当地时区的 04:03,是 UTC 的 04:03。由于美国东部时间目前是 UTC-4(即比 UTC 晚四个小时),这些是您观察到的小时差异......根据您的要求,您可以将本地时间存储在数据库中。但你必须意识到,当你的客户在时区之间移动时,这可能会导致奇怪的结果。2023-08-19T04:03:57Z