2017-02-08 8 views
-2

でDateオブジェクトmmで、私ははHHを変換:JS

私が試した引き算値

var res = date1 - date2; 

を取得するために、Dateオブジェクトに変換することができますどのように

14:10 and 19:02 

のような文字列として提示し2回をお持ちの場合私は取得しています

var date = new Date.parseExact(myDateVar, "HH:mm"); 

で解析する

Uncaught TypeError: Date.parseExact is not a constructor

+1

['Date'オブジェクト](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date)には' parseExact() 'メソッドがありません。あなたはそれについてどこで読んだのですか?どんなに、2つの時間の差を計算するのがあなたの最終目標です、私は日付を混乱させません。 –

+0

このような組み込み関数はありません。 'Date'クラスは時刻だけでなく日付も扱います。 – 4castle

+0

あなたはparseExactを行う必要はありません。Date構造体に日付/時刻文字列を渡すだけです。date' = new Date( "01/01/1901 19:02") – MCMXCII

答えて

0

最初にこの変換:これまでの14:10 and 19:02

var 
    pieces = "14:02".split(':') 
    minute, second; 

if(pieces.length === 2) { 
    minute = parseInt(pieces[0], 10); 
    second = parseInt(pieces[1], 10); 
} 

をして、この使用:私はコンストラクタがないように、新しいDate.parseExactは、C#であると思い

var date1 = new Date("7/13/2010"); 
var date2 = new Date("12/15/2010"); 
var timeDiff = Math.abs(date2.getTime() - date1.getTime()); 
var diffDays = Math.ceil(timeDiff/(1000 * 3600 * 24)); 
alert(diffDays); 
+0

あなたは' pieces [0] 'を意味すると思います。 2番目のスニペットはどのように質問に答えますか? – 4castle

+0

私の答えを更新する –

0

:もちろん

var a="14:10"; 
var b="19:02"; 

var date1=new Date("01-01-2017 " + a + ":00"); 
var date2=new Date("01-01-2017 " + b + ":00"); 
//diff will be the number of milliseconds between the two times. 
var diff = Math.abs(date1 - date2); 
alert(diff); 

これはあなたが同じ24時間以内にそのを行わないことが必要です。

0

日付とそのすべての奇妙さ(タイムゾーン、悪い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。これをカスタム関数またはオブジェクトにラップすると、再利用可能なものができます。

0

あなたは、いくつかのオプションがあります:

最初のオプション:

var date1 = new Date(null, null, null, 14, 10); 
var date2 = new Date(null, null, null, 19, 02); 

をそして、あなたは実際の日付オブジェクトを取得します。

秒オプション:

var date1 = new Date('01/01/1970 14:10'); 
var date2 = new Date('01/01/1970 19:02'); 

そして、あなたは同じ結果を得ることができます。

関連する問題