JavaScriptで日付の違いを返すことができる関数を作成するには?

StackOverflow https://stackoverflow.com/questions/2146127

  •  23-09-2019
  •  | 
  •  

質問

私は(?30または31で乗算)嘆願がその正しい月のノーを検索する方法だけでなく、などということをご確認ください.. 2つの日付の間の日差を取得する機能の下に作成され、年間している..

function days_between(date1, date2,datepart) {

// The number of milliseconds in one day
 var ONE_DAY=0;
 if ( datepart === undefined ) {
  datepart = 'D';
}

 if(datepart='Y')
 {     
 ONE_DAY = 1000 * 60 * 60 * 24 * 30 *12
 }
 else if (datepart='M')
 {
 ONE_DAY = 1000 * 60 * 60 * 24 * 30
 }
 else
 {
 ONE_DAY = 1000 * 60 * 60 * 24   //for day
 }

// Convert both dates to milliseconds
var date1_ms = date1.getTime()
var date2_ms = date2.getTime()

// Calculate the difference in milliseconds
var difference_ms = Math.abs(date1_ms - date2_ms)

// Convert back to days and return
return Math.round(difference_ms/ONE_DAY)

}

役に立ちましたか?

解決

アプリケーションが日付操作方法の多くを必要としようとしている場合は、

は、 Datejsのようなものを使用して検討する必要がありますのライブラリます。

:あなたはDatejsライブラリからtime.jsが含まれている場合は、

は、次の操作を行うことができるだろう

var future = new Date().add({months: 5}); 
var now = new Date();

var span = new TimeSpan(future - now);

console.log("Days: ", span.getDays());
time.jsスクリプトはオプションで、コンパイル/ビルド/バージョンに含まれていません。あなたは SVNリポジトリ。

他のヒント

あなたはないの前に違いを作った後、日に変換する必要があります。以下のような:

var d1 = new Date().getTime(),
d2 = new Date(2010, 11, 31).getTime();
alert(Math.round((d2-d1)/24/60/60/1000) + ' days left for 2010');
scroll top