2

非常に単純な時差計算を作成しようとしています。ただ「endtime-starttime」。でも+1時間です。私はGMT+1なので、タイムゾーンに問題があるのではないかと思います。

とにかく、開始時刻と終了時刻の両方が同じタイムゾーンにあるため、違いに影響を与えることはありません。

私の実行中の例を確認してください-コードはここにあります:

http://jsfiddle.net/kaze72/Rm3f3/

$(document).ready(function() {
    var tid1 =  (new Date).getTime();

    $("#tid").click(function() {
        var nu = (new Date).getTime();
        var diff = new Date(nu - tid1);
        console.log(diff.getUTCHours() + ":" +
                diff.getUTCMinutes() + ":" +
               diff.getUTCSeconds());  
        console.log(diff.toLocaleTimeString());
    });
})
4

1 に答える 1

8

Dateオブジェクトが何を表し、どのように日付を格納するかを理解する必要があります。基本的に、それぞれDateは 1970 年以降のミリ秒数 (いわゆるエポック時間) の薄いラッパーです。ある日付を別の日付から減算しても、日付は取得されません。2 つの間のミリ秒数が取得されるだけです。

そうは言っても、この行にはあまり意味がありません。

var diff = new Date(nu - tid1);

本当に必要なものは次のとおりです。

var diffMillis = nu - tid1;

...そして、秒、分などを単純に抽出します。

var seconds = Math.floor(diffMillis / 1000);
var secondsPart = seconds % 60;
var minutes = Math.floor(seconds / 60);
var minutesPart = minutes % 60;
var hoursPart = Math.floor(minutes / 60);
//...
console.log(hoursPart + ":" + minutesPart + ":" + secondsPart);  

ワーキングフィドル

于 2012-12-15T16:10:50.937 に答える