何日前、何日後の取得

何日前、何日後を取得するには、現在を時間(ミリ秒)として取得し、指定日をミリ秒で加算あるいは減算することで取得できます。

関数定義

JavaScript

/**
 * 何日前、何日後の取得
 * @param {Date} dateObj 元となるDateオブジェクト
 * @param {number} day 取得する日
 * @return {Date|false} 成功した場合はDateオブジェクト、失敗した場合はfalseを返す
 */
var getOfBeforeAfterDays = function(dateObj, day) {
	var result = false;
	if (dateObj && dateObj.getTime && day && String(day).match(/^-?[0-9]+$/)) {
		result = new Date(dateObj.getTime() + Number(day) * 24 * 60 * 60 * 1000);
	}
	return result;
};

使い方

引数

引数名 説明
第一引数
必須
dateObj Date 元となるDateオブジェクト
第二引数
必須
day number 取得する日
何日前として取得する場合は負の数を指定

戻り値

成功した場合はDateオブジェクト、失敗した場合はfalseを返します。

JavaScript

var dateObj = new Date();

var value1 = getOfBeforeAfterDays(dateObj, 3),  // 3日後
    value2 = getOfBeforeAfterDays(dateObj, -3); // 3日前

alert(value1);
alert(value2);

なお、1日をミリ秒として算出する場合は、
1日 = 24時間 = 1440分 = 86400秒 = 86400000ミリ秒なので、
ミリ秒 = 時 × 分 × 秒 × ミリ秒で、
86400000 = 24 × 60 × 60 × 1000という計算になり、
このことから3日後の場合は、
3 × 24 × 60 × 60 × 1000(3 × 86400000)ということになります。

JavaScript逆引きリファレンス一覧へ戻る