gpt4 book ai didi

javascript - 为什么 Date ("2014-04-07") 被解析为 Sat Apr 05 2014 17 :26:15 GMT-0500 (CEST)?

转载 作者:行者123 更新时间:2023-12-02 17:33:01 28 4
gpt4 key购买 nike

我正在创建这样的日期:

var StartDate = new Date(data.feed.entry[i].gd$when[j].startTime);

当收到指定日期和时间的日期字符串时,格式如下:

"2014-04-12T20:00:00.000-05:00"

Date() 解释了这个完美的返回:

Sat Apr 12 2014 19:00:00 GMT-0500 (CDT)

但是,当收到的日期字符串格式中没有时间信息时:

"2014-04-07" 

然后 Date() 将其解释为:

Sat Apr 05 2014 19:00:00 GMT-0500 (CDT)

看起来 Date() 正在将 -07 作为时间,但我不知道它从哪里得到 05 的日期。知道可能是什么问题吗?难道 Date() 正在解释不同的时区,因为在第一个字符串中,时区是在最后确定的,但在“全天”事件中没有指示时区。

有人发现这个问题了吗?如果是的话,你是怎么解决的?

更新:在对这个解析问题进行了更多研究之后,我注意到一些非常奇怪的事情:

声明如下:

 new Date("2014-4-07")

将返回 Mon Apr 07 2014 00:00:00 GMT-0500 (CDT),这是正确的,但以下一个:

  new Date("2014-04-07")

返回 Sun Apr 06 2014 19:00:00 GMT-0500 (CDT),这是错误的。因此,无论出于何种原因,填充零似乎都会影响日期的解析方式!

最佳答案

您错误地使用了 Date() 函数。

它只接受以下格式的参数。

//No parameters
var today = new Date();

//Date and time, no time-zone
var birthday = new Date("December 17, 1995 03:24:00");

//Date and time, no time-zone
var birthday = new Date("1995-12-17T03:24:00");

//Only date as integer values
var birthday = new Date(1995,11,17);

//Date and time as integer values, no time-zone
var birthday = new Date(1995,11,17,3,24,0);

来源:MDN .

Date() 函数不接受时区作为参数。您认为时区参数有效的原因是它显示的时区与您输入的时区相同,但那是因为您位于同一时区。

您之所以将 Sat Apr 05 2014 19:00:00 GMT-0500 (CDT) 作为 Date("2014-04-07") 的输出,只是因为您使用了它以不同的方式。

new Date(parameters) 将根据传入的参数给出输出。

Date(parameters) 无论您传入什么参数,都会将输出作为当前日期和时间。

关于javascript - 为什么 Date ("2014-04-07") 被解析为 Sat Apr 05 2014 17 :26:15 GMT-0500 (CEST)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22882805/

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