2017-08-07 11 views
0

これは私が試みたものです。間違いなく正しい21を得ています。私は間違って何をしていますか?将来、特定の日付と今日の間の日数を計算するにはどうすればよいですか?

var today = new Date(); 
var TrumpsStateVisit = new Date('March 12, 2018 12:00:00'); 
var daysTillTrumpsStateVisit = TrumpsStateVisit.getTime() - today.getTime(); 
daysTillTrumpsStateVisit = (daysTillTrumpsStateVisit/864000000); //number of milleseconds in a day 

var $countDownTillTrumpsChinaTrip = ('#countDownTillTrumpsChinaTrip'); 
$countDownTillTrumpsChinaTrip.textContent = Math.floor(daysTillTrumpsStateVisit); 
+2

「86400000」には5が必要です; – ixpl0

+0

JavaScriptの2つの日付の間の日数を取得するにはどうすればよいですか?*](https://stackoverflow.com/questions/542938/how -do-i-get-the-day-in-two-days-in-javascript) – RobG

答えて

0

あなたはとても近いでした!

主な問題は、1日に864000000ミリ秒ではないことです。86400000のみです。あなたは1つのゼロが多すぎます。

二次的な問題は夏時間で発生します。

var today = new Date(); 
 
var TrumpsStateVisit = new Date('March 12, 2018 12:00:00'); 
 
var daysTillTrumpsStateVisit = TrumpsStateVisit.getTime() - today.getTime(); 
 
daysTillTrumpsStateVisit = (daysTillTrumpsStateVisit/86400000); //number of milleseconds in a day 
 

 
console.log(Math.round(daysTillTrumpsStateVisit));

・ホープ、このことができます:ない毎日あなたがラウンド結果ではなく、それに必要なので、それに正確に24時間を持っています! :)

+0

日中は必ずしも24時間ではない(夏時間が観測される)ので、結果は丸められます、床がない。 – RobG

+0

@RobG - 本当に、私はこれについて忘れていた。それを指摘してくれてありがとう!私はこれをカバーする私の答えを更新しました:) –

0

これが機能しない主な理由は、1日のミリ秒数が100 * 60 * 60 * 24 = 86400000であることです。また、2018年3月12日12:00になるように、ユーザーのブラウザーがどのようなタイムゾーンであっても、あなたが意図したものとは異なる可能性があります。

しかし、日付を減算するときに時間の変更やその他の問題に関連する解決策がたくさんあるので、実際に日付と時刻の処理に特化したhttps://momentjs.com/のようなライブラリを使用する必要があります。

関連する問題