gpt4 book ai didi

Javascript,没有时区的 Date.parse

转载 作者:行者123 更新时间:2023-11-29 19:37:55 24 4
gpt4 key购买 nike

我在使用 Javascript 日期时遇到问题。

我收到一个包含日期的 JSON,当我尝试获取日期对象时,它返回不同时区的值,并且通常将日期移到前一天的 20 点。

例子:

json中的值为:"2014-06-01T00:00:00"

当我做的时候

var d2 = new Date(Date.parse("2014-06-01T00:00:00"))

返回

Sat May 31 2014 20:00:00 GMT-0400 (Eastern Daylight Time)

如我所料

Sun Jun 01 2014 00:00:00 GMT-0400

我该如何解决这个问题?

谢谢

最佳答案

Date.parse 返回自 UTC 纪元以来的毫秒数,因此无论您传入什么日期/时间字符串,您都会得到 UTC。 (有关详细信息,请参阅 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse。)

如果您想将其转换为本地时间,则必须知道您与 UTC 的时差。您可以这样从 JavaScript 中获取:

var offset = new Date().getTimezoneOffset()*60*1000;

(Date.prototype.getTimezoneOffset 以分钟为单位返回偏移量,因此我们必须转换为毫秒。)

然后您可以使用该偏移量构造您的日期:

var date = new Date(Date.parse("2014-06-01T00:00:00") + offset);

如果您想将该日期解释为处于不同的时区,您只需使用适合该时区的任何毫秒偏移量。不过请记住夏令时:这肯定会使事情复杂化。

关于Javascript,没有时区的 Date.parse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24515347/

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