gpt4 book ai didi

javascript - getMonth getUTCMonth 差异结果

转载 作者:行者123 更新时间:2023-11-29 15:45:36 32 4
gpt4 key购买 nike

我在使用 JavaScript date.getMonth() 和 date.getUTCMonth() 时发现了不一致的结果,但仅限于某些日期。以下示例演示了该问题:

<!DOCTYPE html>
<html>
<body onload="myFunction()">

<p id="demo">Click the button to display the month</p>

<script type="text/javascript">
function myFunction()
{
var d = new Date(2012, 8, 1);
var x = document.getElementById("demo");
x.innerHTML=d;
x.innerHTML+='<br/>result: ' + d.getMonth();
x.innerHTML+='<br/>result UTC: ' + d.getUTCMonth();

}
</script>

</body>
</html>

这个例子的输出是:

Sat Sep 01 2012 00:00:00 GMT+0100 (Hora de Verão de GMT)
result: 8
result UTC: 7

如果我将日期更改为 (2012, 2, 1),则输出为:

Thu Mar 01 2012 00:00:00 GMT+0000 (Hora padrão de GMT)
result: 2
result UTC: 2

在第一个示例中,getMonth 返回 7,getUTCMonth 返回 8。在第二个示例中,两者返回相同的值 2。

有人遇到过这种情况吗?我来自葡萄牙,我认为这与我的格林威治标准时间有关,但我不明白为什么会这样,因为示例在相同的情况下运行。

提前致谢

最佳答案

您会看到,根据您所在的时区,控制台日志可能会有所不同。我选择了月份的第一天“01”,因为它将被赋予午夜默认时间“00:00:00”,这将导致某些时区产生二月而不是三月(您可以在此处获得完整的独家新闻:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse ):

let date1 = '2019-03-01'; // defaults to UTC
let date2 = '2019-03-01T14:48:00'; // LOCAL date/time


let dt1 = new Date(date1);
let dt2 = new Date(date2)


let month1 = dt1.getMonth();
let month2 = dt2.getMonth();

console.log("mon1: " + month1);
console.log("mon2: " + month2);

关于javascript - getMonth getUTCMonth 差异结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11847269/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com