よく使うのでメモ
Dateオブジェクトの戻り値を YYYY-MM-DD の書式に変換する関数
formData.js
// 日付をYYYY-MM-DDの書式で返すメソッド
function formatDate(dt) {
var y = dt.getFullYear();
var m = ('00' + (dt.getMonth()+1)).slice(-2);
var d = ('00' + dt.getDate()).slice(-2);
return (y + '-' + m + '-' + d);
}
今日の日付を YYYY-MM-DDで取得する
result.js
> formatDate(new Date());
'2020-03-02'
###注意点
- getMonth() は 0-11 を返す。0は1月、11が12月
- slice(-2) は、文字列の右から数えて2文字目までを抜き出す。正確には、右から 0, -1, -2 番目までを取り出し、3番目(-2)を含まないので、結局右から2文字になる。
応用
n日後の日付を求める関数
result.js
function getAfterNdays(n){
var dt = new Date();
dt.setDate(dt.getDate()+n);
return formatDate(dt);
}
node.js
> getAfterNdays(4);
'2020-03-06'
2つのYYYY-MM-DD形式の日付の差分(日数)を求める関数
dateDiff.js
function getDateDiff(dateString1, dateString2) {
// 日付を表す文字列から日付オブジェクトを生成
var date1 = new Date(dateString1);
var date2 = new Date(dateString2);
// 2つの日付の差分(ミリ秒)を計算
var msDiff = date1.getTime() - date2.getTime();
// 求めた差分(ミリ秒)を日付に変換
// 差分÷(1000ミリ秒×60秒×60分×24時間)
return Math.ceil(msDiff / (1000 * 60 * 60 *24));
}
result.js
> getDateDiff("2020-03-10", "2020-03-05");
5