Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript UTC时间(如果月份发生变化,则为48小时)_Javascript_Date - Fatal编程技术网

Javascript UTC时间(如果月份发生变化,则为48小时)

Javascript UTC时间(如果月份发生变化,则为48小时),javascript,date,Javascript,Date,出于这样或那样的原因,这个代码示例给出的是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); }

出于这样或那样的原因,这个代码示例给出的是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>

函数myFunction()
{
var d=(UTC日期(2012,07,01)-UTC日期(2012,06,30))/1000/3600;
警戒(d);
}
myFunction();

因为
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);
}

有关详细信息,请阅读上的文档。

非常感谢您的帮助,我不知道月份是以零为基础的。@user149323不客气。如果你觉得这个答案完全解决了你的问题,你应该这样做。