为什么我在Javascript中从日期算起的小时数是错误的?
我想从日期字符串中获取小时和分钟,因此我将其转换为日期,然后使用getHours()和getMinutes()方法。问题是结果是12:20而不是10:20为什么会发生这种情况?我如何才能找到合适的时间?为什么我在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
函数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不客气:)也许你想通过阅读了解更多。