1

由于一个或另一个原因,这个代码示例给出了 48 小时而不是 24 小时,谁能解释我为什么新月份的 UTC 时间在 javascript 错误中或者我做错了什么?谢谢你的协助。

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

1 回答 1

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

于 2012-06-30T16:11:49.947 回答