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番目の例では、両方が同じ値2を返します。
誰かがすでにこの状況を経験していますか?私はポルトガル出身で、GMTに関係があると思いますが、例が同じ状況で実行されているため、なぜこれが発生しているのかわかりません。
よろしくお願いします