2012-08-07 75 views
1

我发现不一致的结果,使用JavaScript date.getMonth()和date.getUTCMonth()的时候,但只有一些日期。下面的示例说明了此问题:得到月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.

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

感谢进步

回答

1

您会发现它是由DST差异引起的。