1

何らかの理由で、このコード サンプルでは 24 時間ではなく 48 時間が表示されます。JavaScript のバグで新しい月の UTC 時間がなぜ間違っているのか、誰か説明してもらえますか? 助けてくれてありがとう。

 <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 の日付では月は 0 から始まり、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 に答える