2016-05-29 25 views
0

私は、サードパーティの日付関連ライブラリを使用しないで、2つの日付の時間差を見つけることを試みています。以下のコードを使用しましたが、間違った時間が表示されます。これを修正するためのより良い提案やポインタをお願いします。Jquery日付の時間差

My fiddle

var FutureDate=new Date('2016-05-08T05:19:05.83'); 
var TodayDate = new Date(); 
var t1 = FutureDate.getTime(); 
var t2 = TodayDate.getTime(); 
var diffInHours = parseInt((t2-t1)/(24*3600*1000)); 
alert(diffInHours); 
+1

なぜあなたの数式には「24」が含まれていますか?ミリ秒を数時間ではなく数時間に変換しようとしています。 – nnnnnn

+0

私は何時間の違いがあるかを調べようとしています。 – Kurkula

+1

はい。そして、あなたはミリ秒で違いを得ました( 't2-t1')。したがって、数学的に言えば、ミリ秒を何時間に変換するべきですか? – nnnnnn

答えて

1
var futureDate = new Date('2016-06-08T05:19:05.83'); 
var todayDate = new Date(); 
var milliseconds = futureDate.getTime() - todayDate.getTime(); 
var hours = Math.floor(milliseconds/(60 * 60 * 1000)); 
alert('Hours: ' + hours); 
  1. 時間:分= 1:60
  2. 分:秒= 1:60
  3. 秒:ミリ秒= 1:1000
  4. 時間:ミリ秒= 1:60x60x1000
1

あなたが実際にネイティブでお互いから日付をsubstractすることができます。

var msIn1Hour = 3600 * 1000; 
var TodayDate = new Date(); 
var FutureDate = new Date('2016-05-08T05:19:05.83'); 

alert((TodayDate - FutureDate)/msIn1Hour); 

注:私はあなたがこのようparseIntを使用した理由は、intstringを変換するために使用されることを意図してはかなりよく分かりません。番号を丸める場合は、Math.floorまたはMath.roundを使用します。

1

数式から24分周を削除するだけです。それは実際にはdifference in daysに変換されています。

t2-t1 = x milliseconds 
x/1000 = y seconds 
y/3600 = z hours 

zをお持ちの場合は完了です。だから、あなたは24で除算する必要はありません。したがって、あなたは簡単に書くことができます

var FutureDate=new Date('2016-05-08T05:19:05.83'); 
var TodayDate = new Date(); 
var t1 = FutureDate.getTime(); 
var t2 = TodayDate.getTime(); 
var diffInHours = Math.floor((t2-t1)/(3600*1000)); //Removed the 24 here 
alert(diffInHours); 
+0

は最良の選択肢ではないかもしれません。 – Kurkula

+1

それは本当です。私はそれを逃した。ありがとう – divinemaniac

関連する問題