1

Javascriptを使用して、「HH:MM:SS」という形式で時差を取得する必要があります。

私はこれを試しました:

var diff = Date.parse( time2) - Date.parse( time1 );
var total_time = (diff / 1000 / 60 / 60) + ":" + (diff / 1000 / 60) + ":" + (diff / 1000);

この:

var diff = new Date( time2) - new Date( time1 );
var total_time = (diff / 1000 / 60 / 60) + ":" + (diff / 1000 / 60) + ":" + (diff / 1000);

time2 と time1 の値は次のとおりです。

time1: "2012-11-07 15:20:32.161"
time2: "2012-11-07 17:55:41.451"

そして、両方のケースで得られる結果は次のとおりです。

total_time= 0.5250819444444444:31.504916666666666:1890.295

あなたが見ることができるものは正しくありません

4

2 に答える 2

2

で区切られた日付のミリ秒部分のために、間違った差分値を取得していると思いますデータパーサーによって正しく受け入れられていません。.

以下のように、ミリ秒を除いて日付と時刻の部分を使用してみてください。

 var diff = Date.parse(time2.split(".")[0]) - Date.parse( time1.split(".")[0]);

また、間違った差分を取得している間diff時間の計算も間違っています。

そのはず:

       var second = Math.floor(diff /1000);
        //convert the seconds into minutes and remainder is updated seconds value
       var minute = Math.floor(second /60);
       second = second % 60;

        //convert the minutes into hours and remainder is updated minutes value
       var hour = Math.floor(minute/60);
       minute = minute %60;

       var total_time= hour+":" minute+":"+second;
于 2012-11-08T19:36:27.343 に答える
1

からすでに計算したミリ秒数を削除するのを忘れましたdiff。これは、適切な方法でそれを行う方法に関する非常に詳細な例です。

var time1 = "2012-11-07 15:20:32.161",
    time2 = "2012-11-07 17:55:41.451",

    SECOND = 1000,
    MINUTE = SECOND* 60,
    HOUR = MINUTE* 60;

var diff = new Date(time2) - new Date(time1);

var hours = Math.floor(diff / HOUR); // Calculate how many times a full hour fits into diff
diff = diff - (hours * HOUR); // Remove hours from difference, we already caluclated those
var minutes = Math.floor(diff / MINUTE); // Calculate how many times a full minute fits into diff
diff = diff - (minutes * MINUTE); // Remove minutes from difference
var seconds = Math.floor(diff / SECOND); // As before
diff = diff - (seconds * SECOND);
var rest = diff;

var total_time = hours + ":" + minutes + ":" + seconds + " " + rest ;

デモ

于 2012-11-08T19:42:42.830 に答える