0

重複の可能性:
javascriptで時差を確認し、javascriptで
時差を計算します

これは、フォーム入力から時間をプルするための私のコードブロックです。

start = group.find('.startTime').val().replace(':',''),     // like 0100
end = group.find('.endTime').val().replace(':',''),         // like 0300
timeDiff = (end - start) < 0 ? (end - start + 2400) : (end - start),

timeDiff真夜中を過ぎる時間を考慮しているので、0100から2300を引いて、-2200を取得すると、2400が加算されて、0200の正しい差(2時間)が得られます。

私の問題は、2100〜2030(30分かかるはずです)のように何回か減算しようとすると発生しますが、それは生の数値であるため、実際の差は70​​になります。私の質問は、これらを正しく減算するにはどうすればよいですか?それを日付または時刻オブジェクトに変換する必要がある場合、それを行う適切な方法は何でしょうか?私はその方法を調べましたsetTimeが、それは私が必要としていたもののようには聞こえませんでした。

前もって感謝します。

4

1 に答える 1

0

オブジェクトがないDate場合(時間のみの値では問題ないようです)、時間を分または時間に変換する必要があります-常に1つの単位のみで計算します(特に、六十進法を表す1つの10進数にそれらを混在させないでください)。

function toTime(string) {
    var m = string.match(/(\d{2}):({\d2})/);
    return m && 60 * parseInt(m[1], 10) + parseInt(m[2], 10),
}
var start = toTime( group.find('.startTime').val() ),
    end = toTime( group.find('.endTime').val() );

var timeDiff = Math.abs(end - start);

function fromTime(minutes) {
    var m = minutes % 60,
        h = (minutes - m) / 60;
    return ("0"+h).substr(-2)+":"+("0"+m).substr(-2);
}
于 2013-01-20T17:22:31.650 に答える