Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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中从日期算起的小时数是错误的?_Javascript_String_Date_Datetime - Fatal编程技术网

为什么我在Javascript中从日期算起的小时数是错误的?

为什么我在Javascript中从日期算起的小时数是错误的?,javascript,string,date,datetime,Javascript,String,Date,Datetime,我想从日期字符串中获取小时和分钟,因此我将其转换为日期,然后使用getHours()和getMinutes()方法。问题是结果是12:20而不是10:20为什么会发生这种情况?我如何才能找到合适的时间? 函数myFunction(){ var d=新日期(“2020-05-28810:20:00.000Z”); 小时=d.getHours(); 分钟=d.getMinutes(); document.getElementById(“demo”).innerHTML=hours+“:”+minu

我想从日期字符串中获取小时和分钟,因此我将其转换为日期,然后使用getHours()和getMinutes()方法。问题是结果是12:20而不是10:20为什么会发生这种情况?我如何才能找到合适的时间?

函数myFunction(){
var d=新日期(“2020-05-28810:20:00.000Z”);
小时=d.getHours();
分钟=d.getMinutes();
document.getElementById(“demo”).innerHTML=hours+“:”+minutes;
}
myFunction()

getHours
方法根据应用程序的托管位置检索小时数。在您的情况下,应用程序必须托管在CEST时区(GMT+2)


您需要使用
getUTCHours
方法以UTC为单位获取小时数,因为这是您使用ZULU指定日期的方式。

字符串末尾的
z
表示零小时偏移量,即
UTC
Date.getHours
根据您的
local
时间返回小时,这样就不会出错<代码>日期。getUTCHours返回UTC+-0小时


如果您需要使用时区,有很多库,如或。

使用:新日期('2020-05-28 10:20:00'),请删除。000Z@AksJacoves不要那样做。它依赖于未指定的日期/时间格式,在某些浏览器中会中断。@str我不知道这一点。谢谢你的邀请info@AksJacoves不客气:)也许你想通过阅读了解更多。