2012-08-07 73 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差異引起的。