9

2つのタイムスタンプのHH:mm形式があり、同じ形式の時間間隔を表すそれらの差を計算する必要がありHH:mmます。

これを実現するためのJavaScriptのユーティリティはありますか?オブジェクトを使ってみDateましたが、何か役に立つものが見つかりません...手伝ってくれませんか。

4

4 に答える 4

25

2つの日付を互いに差し引くだけで、結果はミリ秒単位の差になります。

Mozilla Developer Networkから:

// using static methods
var start = Date.now();
// the event you'd like to time goes here:
doSomethingForALongTime();
var end = Date.now();
var elapsed = end - start; // time in milliseconds

Dateにはミリ秒を引数として受け入れるコンストラクターがあるため、これを実行するだけでDateに再変換できます。

var difference = new Date(elapsed);
//If you really want the hours/minutes, 
//Date has functions for that too:
var diff_hours = difference.getHours();
var diff_mins = difference.getMinutes();
于 2012-08-30T09:01:28.897 に答える
7

このようなもの:

​var t1 = '12:04'.split(':'), t2 = '3:45'​​​​​​​.split(':');
var d1 = new​ Date(0, 0, 0, t1[0], t1[1]),
    d2 = new Date(0, 0, 0, t2[0], t2[1]);
var diff = new Date(d1 - d2);
于 2012-08-30T09:23:15.683 に答える
1

あなたはこれを試すことができます

https://github.com/layam/js_humanized_time_span

出力をフォーマットしますか?

またはjqueryを使用している場合は、試すことができます

http://timeago.yarp.com/

于 2012-08-30T09:05:32.677 に答える
1

tim1が「09:15」のような文字列であり、tim2が「19:05」のような文字列であると仮定すると、tim2とtim1の違いは、次のjavascriptコードで導き出すことができます:-

var tim1='09:15',tim2='19:05';
var ary1=tim1.split(':'),ary2=tim2.split(':');
var minsdiff=parseInt(ary2[0],10)*60+parseInt(ary2[1],10)-parseInt(ary1[0],10)*60-parseInt(ary1[1],10);
alert(String(100+Math.floor(minsdiff/60)).substr(1)+':'+String(100+minsdiff%60).substr(1));
于 2012-08-30T09:07:06.487 に答える