何日前、何日後の取得
何日前、何日後を取得するには、現在を時間(ミリ秒)として取得し、指定日をミリ秒で加算あるいは減算することで取得できます。
関数定義
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)ということになります。