0

プラグインを使用しdate.jsて時間を日付オブジェクトに変換してから減算していますが、結果は有効ではありません。私の時間はこの形式です11:00 pm これは私がやっていることです:

var tim_i = $('#in_time').val();
var tim_o = $('#out_time').val();
total_tim = "";
if (tim_i && tim_o ){
    d1 = Date.parse(tim_i);
    d2 = Date.parse(tim_o);
    date_diff = new Date(d2 - d1);
    total_tim=date_diff.getHours() + ':' + date_diff.getMinutes();
}

$('#total_time').val(total_tim); 

他に何かする必要がありますか?

4

2 に答える 2

1

Datejs の TimeSpan クラスは、問題を単純化するのに役立つ場合があります。

これは Firebug で実行できるサンプルで、2 つの文字列を解析して Date オブジェクトにし、差を時間 + 分で出力します。

var d1 = Date.parse("6:30 am");
var d2 = Date.parse("11:00 pm");

var diff = new TimeSpan(d2 - d1);

console.log("Hours: ", diff.hours);
console.log("Minutes: ", diff.minutes);

お役に立てれば。

編集:本当に簡潔にしたい場合は、1行に単純化することもできます。

new TimeSpan(Date.parse("11:00 pm")-Date.parse("6:30 am")).toString("H:mm")
于 2013-04-06T22:37:10.547 に答える
0

これを試して:

var tim_i = new Date($('#in_time').val());
var tim_o = new Date($('#out_time').val());
total_tim = "";
if (tim_i && tim_o) {
    var timeDiff = Math.abs(tim_o.getTime() - tim_i.getTime());
    var getHours = Math.ceil(timeDiff / (1000 * 3600));
    var getMinutes = Math.ceil(timeDiff % (1000 * 60));
    total_tim = getHours + ':' + getMinutes;
}
于 2013-04-06T08:35:22.793 に答える