Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript的不同行为';s新日期(字符串)_Javascript_Date - Fatal编程技术网

javascript的不同行为';s新日期(字符串)

javascript的不同行为';s新日期(字符串),javascript,date,Javascript,Date,A在格式为yyyy MM ddTHH:MM:ss的字符串上有日期 我需要创建一个javascript日期对象,所以我这样做了 var d=新日期('2017-07-01T00:38:00') 创建的对象是 Sat Jul 01 2017 00:38:00 GMT+0100 (GMT Daylight Time) 这就是我所期望的,也是在我桌面上的Chrome(V59.0.3071.115)上发生的事情 当我在我的android手机上运行相同的代码时,Chrome版本为51.0.2704.81,

A在格式为yyyy MM ddTHH:MM:ss的字符串上有日期

我需要创建一个javascript日期对象,所以我这样做了

var d=新日期('2017-07-01T00:38:00')

创建的对象是

Sat Jul 01 2017 00:38:00 GMT+0100 (GMT Daylight Time)
这就是我所期望的,也是在我桌面上的Chrome(V59.0.3071.115)上发生的事情

当我在我的android手机上运行相同的代码时,Chrome版本为51.0.2704.81,结果是

Sat Jul 01 2017 01:38:00 GMT+0100 (GMT Daylight Time)
正如你所看到的,由于我所在的时区不同,时间也不同

上述行为是否属于预期行为?这是Chrome版本的问题吗?在我的搜索中,我了解到带有字符串日期的日期构造函数会产生意外的结果,但是我可以独立于浏览器依赖于常量行为吗


编辑

它不是重复的,因为在Firefox上,我得到了与Chrome v59相同的结果,datetime被解释为本地日期,而不是UTC(这是我想要的)

编辑2

在“据称”重复的问题上,“询问者”的目标是
新日期()
将插入的日期视为UTC,并对用户本地时间进行必要的转换。 我想要的是
newdate()
将插入的日期作为本地日期处理,而不进行任何转换。这是我在最近的浏览器(Chrome,Firefox)上看到的行为,但在旧版本的Chrome(Android,v51)上没有。 因此,如果用户位于偏移量为+01:00的时区,如果我设置
新日期('2017-07-01T00:38:00')
结果应该是
2017年7月1日星期六00:38:00 GMT+0100

编辑3

刚刚检查了如果我使用构造函数
新日期(2017,06,01,0,38,0)
该日期被解释为本地日期(它显示
2017年7月1日星期六00:38:00 GMT+0100(GMT夏令时)
在两个版本的chrome上……是否有任何文档可以确保始终被解释为本地日期?

中有一个bug

Chrome实现了规范中的字面意思,并将Chrome 35中的
Date
行为替换为您应该期望的行为


在(ECMAScript 5.1)上:

Z
是指定为“Z”(UTC)或“+”或“-”后跟时间表达式HH:mm的时区偏移量

[……]

缺少时区偏移的值为“Z”

关于(固定的):

如果没有时区偏移,则仅日期表单将解释为UTC时间,日期时间表单将解释为本地时间

里面有一个bug

Chrome实现了规范中的字面意思,并将Chrome 35中的
Date
行为替换为您应该期望的行为


在(ECMAScript 5.1)上:

Z
是指定为“Z”(UTC)或“+”或“-”后跟时间表达式HH:mm的时区偏移量

[……]

缺少时区偏移的值为“Z”

关于(固定的):

如果没有时区偏移,则仅日期表单将解释为UTC时间,日期时间表单将解释为本地时间


尝试在日期/时间字符串的末尾添加一个
Z
。如
var d=new date('2017-07-01T00:38:00Z')
。它看起来像一个副本,但在同一个浏览器上(chrome)但是在不同的版本上。添加
Z
并不能解决问题…尝试在日期/时间字符串的末尾添加
Z
。如
var d=new date('2017-07-01T00:38:00Z')
。它看起来像是一个副本,但在同一个浏览器上(chrome)但在不同的版本上,添加
Z
并不能解决问题……根据您的回答,在Chrome 51上,这个日期时间应该被解释为本地时间,但它被解释为UTCMany会说ed 5.1通过与ISO 8601保持一致而正确,而当前的规范是错误的。现在,它与ISO 8601最为一致根据你的回答,在Chrome 51上,这个日期时间应该被解释为本地时间,但它被解释为UTCMany会说ed 5.1通过与ISO 8601一致而正确,而当前的规范是错误的。现在,它与ISO 8601基本一致,但仅日期形式是一个例外离子。