为什么我在Javascript中的日期中得到了错误的小时数?[重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我在Javascript中的日期中得到了错误的小时数?[重复]相关的知识,希望对你有一定的参考价值。
我想从一个日期字符串中获取小时和分钟,所以我把它转换为一个日期,然后使用getHours()和getMinutes()方法。问题是,结果是12:20而不是10:20。为什么会发生这种情况,我怎样才能得到正确的小时?
function myFunction()
var d = new Date("2020-05-28T10:20:00.000Z");
hours = d.getHours();
minutes = d.getMinutes();
document.getElementById("demo").innerhtml = hours + ":" + minutes;
myFunction();
<div id="demo"></div>
这里你有一个JSFiddle来试试。
谢谢你!我想从一个日期字符串中获取小时和分钟,以便将其转换为日期,然后使用getHours(和getMinutes()方法。
答案
在 getHours
方法是根据应用程序的托管地来检索小时数。在您的情况下,应用程序必须托管在CEST时区(GMT+2)。
您需要使用 getUTCHours
方法来获取UTC的小时数,因为你是用ZULU来指定日期的。
另一答案
在 z
字符串的末尾表示零时差,即 UTC
. Date.getHours
根据您的要求返回时间。local
时间,所以不会出错。Date.getUTCHours
返回UTC+-0小时。
如果你需要使用时区,有很多库,如 日子.js 或 日期-fns.
以上是关于为什么我在Javascript中的日期中得到了错误的小时数?[重复]的主要内容,如果未能解决你的问题,请参考以下文章
与 javascript 日期相比,Json Stringify 日期产生错误的日期
为啥我在 python plotly.figure_factory 中的 annotation_text 在某些单元格中得到了错误的坐标?