使用 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。
有没有人已经经历过这种情况?我来自葡萄牙,我认为这与我的格林尼治标准时间有关,但我不明白为什么会发生这种情况,因为这些示例是在相同的情况下运行的。
提前感谢