SOFTELメモ

Softel Inc.

【JavaScript】日付の計算を簡単に処理したい

問題

JavaScriptの日付の 1日足す、1日引く、1年足す、1か月引くなどの処理を簡単にやりたい。

答え

JavaScriptで1日後を計算するには、素直に対応すると以下のようになるわけですが、

var d = new Date();
d.setDate(d.getDate() + 1);

外部のライブラリを使えるなら moment.js を使うと簡単です。

もし自力でライブラリを作ろうとしていたら、moment.js を導入したほうが早いかもしれません。気になるのは多機能な分容量が少し大きいくらい。

ダウンロードしてくるか、

CDNを利用するなら以下を追記してさっそく使えます。

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

以下が可能。

使い方は、Date()の代わりにmoment()を使うだけ。

// moment.js である日から1か月3日後を計算する
var d = moment('2019-08-10').add(3, 'days').add(1, 'months');
d.toString();
// → "Fri Sep 13 2019 00:00:00 GMT+0900"
// moment.js である日から1か月3日後を計算する
var d = moment('2019-08-10').add({days:3,months:1});
d.toString();
// → "Fri Sep 13 2019 00:00:00 GMT+0900"
素のJavaScriptで。
// 素のJavaScriptである日から1か月3日後を計算する
var d = new Date('2019-08-10')
d.setDate(d.getDate() + 3)
d.setMonth(d.getMonth() + 1)
d.toString();
// → "Fri Sep 13 2019 09:00:00 GMT+0900 (日本標準時)"

月末なども簡単に求められる。

var d = moment('2019-09-15');
d.format('YYYY-MM-DD');
// → "2019-09-30"

整形も簡単。

var d = moment();
d.format('YYYY-MM-DD HH:mm:ss');
// → "2019-08-13 05:47:06"

参考

https://momentjs.com/

関連するメモ

コメント