gpt4 book ai didi

javascript - 将 UTC 时间戳解析为本地时间,忽略时区

转载 作者:行者123 更新时间:2023-11-28 14:18:14 25 4
gpt4 key购买 nike

我得到了一些格式为 UTC 的日期。

这些日期实际上是用户本地时间中世界各地发生的事件的时间戳,而不是真正的 UTC。 (由于MongoDB存储本地时间的限制,所以这样做了)

在前端,我想使用这些字段而不将它们转换为浏览器本地时间。

从后端收到的日期字符串如下所示:

2018-10-09T18:02:25.000Z

创建日期对象会将其转换为浏览器的本地时间:

const date = new Date("2018-10-09T18:02:25.000Z")
console.log(date.getHours()) // Prints 20 since Im in +2 timezone

我希望它忽略祖鲁时区信息。我可以像这样删除 Z:

function toDateIgnoreUTC(dateString) {
return new Date(dateString.replace("Z", ""));
}

const date2 = toDateIgnoreUTC("2018-10-09T18:02:25.000Z")
date2.getHours() // Prints 18 which is what I want

我想知道是否有更好的方法让日期对象忽略时区信息而不将其转换为浏览器本地时间。

最佳答案

我会向 deceze's concern 表示您正在更改时间戳的含义。但回答你提出的问题:

您执行此操作的方式(通过删除 Z)是 per specification 。没有时区信息的该格式的日期/时间字符串将被解析为本地时间。 但是,请注意 Apple's JavaScript engine gets this wrong ,它会影响 Safari(当然),还会影响所有当前的 iOS 浏览器(因为它们目前被迫使用 Apple 的 JavaScript 引擎,而不是他们自己的)。

要解决这个问题,您可以随时自己解析(格式很简单),并使用新日期(年,月份,日,小时,分钟,秒)构造函数。

关于javascript - 将 UTC 时间戳解析为本地时间,忽略时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56456282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com