使用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.
有没有人经历过这种情况?我来自葡萄牙,我认为它与我的GMT有关,但我不明白为什么会这样,因为这些例子在同样的情况下运行。
谢谢你的进步
答案 0 :(得分:1)
你会发现它是由DST差异引起的。
答案 1 :(得分:0)
通用时区日期方法用于处理UTC日期
日期返回0到11之间的月份 新日期(1976,01,18)- 1976年2月18日星期三00:00:00 GMT + 0530(印度标准时间)
* getUTCDate返回与getDate()相同,但返回基于世界时区的日期,与月份和年份相同
new Date(1976,01,18).getUTCDate()- 17
new Date(1976,01,18).getDate()- 18
new Date(1976,02,18).getUTCMonth()- 2
new Date(1976,01,18).getMonth()- 1
new Date(1976,01,18).getYear()- 76
new Date(1976,01,18).getUTCFullYear()- 1976
new Date(1976,01,18).getFullYear()- 1976