日付とそのすべての奇妙さ(タイムゾーン、悪いAPI、夏時間、うるう秒...)を混乱させることはお勧めしません。たとえば、"3:05" - "2:00"
を計算し、DSTスイッチが発生した日にスクリプトが実行された場合は、注意しないと0:05
のような結果に終わることがあります。
幸いなことに、それは時間との文字列を解析し、と数学を行うには簡単だ単一ユニットに変換するために、むしろ簡単です。
// Error checking omitted for brevity
var text = "23:59";
var tmp = String(text).match(/^(\d+):(\d+)$/);
var minutes = parseInt(tmp[1], 10);
var seconds = parseInt(tmp[2], 10);
var totalSeconds = 60*minutes + seconds;
console.log(text, minutes, seconds, totalSeconds);
あなたが計算してから減算することにより、2つの時間の間の差を計算することができます対応するtotalSeconds
。これをカスタム関数またはオブジェクトにラップすると、再利用可能なものができます。
['Date'オブジェクト](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date)には' parseExact() 'メソッドがありません。あなたはそれについてどこで読んだのですか?どんなに、2つの時間の差を計算するのがあなたの最終目標です、私は日付を混乱させません。 –
このような組み込み関数はありません。 'Date'クラスは時刻だけでなく日付も扱います。 – 4castle
あなたはparseExactを行う必要はありません。Date構造体に日付/時刻文字列を渡すだけです。date' = new Date( "01/01/1901 19:02") – MCMXCII