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 Date.parse意外返回字符串_Javascript_Date - Fatal编程技术网

Javascript Date.parse意外返回字符串

Javascript Date.parse意外返回字符串,javascript,date,Javascript,Date,我知道在这个主题上有很多答案,太多了以至于无法全部阅读,但我无法理解Date.parse返回的原因 'Sun Oct 21 2018 00:00:00 GMT+0100 (GMT Summer Time)' 从字符串“2018-10-20T23:00:00Z” 所有时间返回+1小时 我是否错过了显而易见的事情?大概这与+0100 GMT有关,但我需要做些什么来确保它正确解析 首先,我强烈建议您不要使用日期构造函数或Date.parse,它们在解析字符串时是等效的。始终使用带有以下链接的小功能或

我知道在这个主题上有很多答案,太多了以至于无法全部阅读,但我无法理解Date.parse返回的原因

'Sun Oct 21 2018 00:00:00 GMT+0100 (GMT Summer Time)'
从字符串“2018-10-20T23:00:00Z”

所有时间返回+1小时

我是否错过了显而易见的事情?大概这与+0100 GMT有关,但我需要做些什么来确保它正确解析


首先,我强烈建议您不要使用日期构造函数或Date.parse,它们在解析字符串时是等效的。始终使用带有以下链接的小功能或合适的库建议

如果按照ECMA-262进行解析,则“2018-10-20T23:00:00Z”将解析为UTC。如果使用toString或通过调用toString(如console.lognew date)的方法将结果日期发送到输出,则通常使用主机时区计算本地值

toString生成的字符串的格式取决于实现,因此可能不包括时区,或者可能以意外的方式显示它,并且在不同的主机中可能不同

根据ECMA-262,如果您希望将“2018-10-20T23:00:00Z”视为本地,请删除Z:

var s='2018-10-20T23:00:00Z'; var t=s.replace/z$/i,; console.logt;
console.lognew Datet.toString;parse返回一个数字,而不是您发布的字符串。不建议使用Date.parse来解析字符串,我想说的是永远不要使用它。Date.parse不会返回字符串!?您的时区似乎是GMT+1。你在期待什么?哦,对不起,我把它和另一个问题混淆了。我的意思是Date函数本身返回日期+1小时。i、 例如,新日期“2018-10-20T23:00:00Z”给出了午夜时间。如果您已将UTC字符串解析为日期对象而不是数字,则需要使用.toutString而不是.toString,后者将使用您的本地时区再次将其格式化为UTC。感谢您的帮助,我确信我现在可以对其进行排序