如果月份更改,则javascript中的UTC时间为48小时

时间:2012-06-30 16:09:16

标签: javascript date

由于一个或另一个原因,此代码示例提供48小时而不是24小时,任何人都可以解释为什么新的月份的UTC时间在javascript错误orw hat我做错了吗?谢谢你帮助我。

 <script type="text/javascript">
    function myFunction()
    {
    var d = (Date.UTC(2012,07,01) - Date.UTC(2012,06,30)) / 1000 / 3600;
    alert(d);
    }
    myFunction();
 </script>

1 个答案:

答案 0 :(得分:2)

因为月6是7月,因为JavaScript日期中的月份为零,而7月份则为31天。

如果您想要7月1日到6月30日之间的小时数,您需要:

var d = (Date.UTC(2012,06,01) - Date.UTC(2012,05,30)) / 1000 / 3600;

或更一般地说:

function hoursBetween(startYear, startMonth, startDay, endYear, endMonth, endDay){
  var d1 = Date.UTC(startYear, startMonth-1, startDay );
  var d2 = Date.UTC(endYear,   endMonth-1,   endDay   );
  return (d2-d1)/(3600*1000);
}

有关详情,请参阅Date.UTC上的文档。