/**
* 日数差を適切な単位(年月日時分秒のいずれか)で返す
*
* 文字列型日付、日付オブジェクトの両方に対応
*
* @param date1 比較日付1
* @param date2 比較日付2
* @returns number 日数
*/
function diffDateX(date1,date2){
var d1 = date1;
var d2 = date2;
// 引数が文字列型の日付なら日付オブジェクトに変換
if(typeof String(d1) === "string"){
var d1 = new Date(d1);
}
if(typeof String(d2) === "string"){
var d2 = new Date(d2);
}
var u1 = Math.floor(d1);// UNIXタイムスタンプに変換
var u2 = Math.floor(d2);
// 日数差を適切な単位(年月日時分秒のいずれか)で返すを算出
var diff_u = u1 - u2;
var date_str = '';
var v = 0;
if(diff_u >= 31556952000){
v = Math.round(diff_u / 31556952000);
date_str = '約' + v + '年間';
}else if(diff_u >= 2629746000){
v = Math.round(diff_u / 2629746000);
date_str = '約' + v + 'ヶ月間';
}else if(diff_u >= 86400000){
v = Math.round(diff_u / 86400000);
date_str = '約' + v + '日間';
}else if(diff_u >= 3600000){
v = Math.round(diff_u / 3600000);
date_str = '約' + v + '時間';
}else if(diff_u >= 60000){
v = Math.round(diff_u / 60000);
date_str = '約' + v + '分間';
}else if(diff_u >= 1000){
v = Math.round(diff_u / 1000);
date_str = '約' + v + '秒';
}else{
date_str = '約' + v + 'ミリ秒';
}
return date_str;
}
出力
| 日付1 | 日付2 | 日付差 |
|---|