*Moment.js とは
JavaScriptで日付を扱うためのライブラリです。JavaScriptで日付を扱う場合、デフォルトでDateクラスがありますが、Moment.jsではDateクラスよりも簡単に面倒な日付計算や変換などができるようになっています。
*参考
*インストール
CDNを読み込む場合は、下記サイトの最新バージョンを指定して使います。<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js" type="text/javascript"></script>
*使い方
- 日付のフォーマット
// 現在時刻(Sat Oct 27 2018 18:49:11 GMT+0900)
var now = moment();
// 日付のフォーマット指定(2018-10-27 19:15:19)
var format_date = moment().format('YYYY-MM-DD HH:mm:ss');
- 日付の加算
// 指定日の翌日(2018-10-02)
var tomorrow = moment('2018-10-01').add(1, 'day').format('YYYY-MM-DD');
// 指定日の翌月(2018-11-01)
var next_month = moment('2018-10-01').add(1, 'months').format('YYYY-MM-DD');
// 指定日の翌年(2019-10-01)
var next_year = moment('2018-10-01').add(1, 'years').format('YYYY-MM-DD');
- 日付の減算
// 指定日の前日(2018-09-30)
var yesterday = moment('2018-10-01').subtract(1, 'day').format('YYYY-MM-DD');
- 初日/最終日
// 年の初日(2018-01-01)
var year_first_day = moment('2018-10-01').startOf('year').format('YYYY-MM-DD');
// 月の初日(2018-10-01)
var month_first_day = moment('2018-10-15').startOf('month').format('YYYY-MM-DD');
// 年の最終日(2018-12-31)
var year_last_day = moment('2018-10-01').endOf('year').format('YYYY-MM-DD');
- 期間
// 指定日から指定日の期間(10 months ago)
var day1 = moment('2018-01-01')
var day2 = moment('2018-10-15')
var num = day1.from(day2)
- 前後の判定
var day1 = moment('2018-01-01')
var day2 = moment('2018-10-15')
// 指定日の前か判定(true)
var before = day1.isBefore(day2)
// 指定日と同じか判定(false)
var same = day1.isSame(day2)
// 指定日の後か判定(false)
var after = day1.isAfter(day2)
*所感
必要なメソッドを呼ぶだけで面倒な処理をしてくれて、直感的にみても意味がわかりやすいので、とても便利だと思いました。ここでは紹介していませんが、閏年の判定や指定した範囲内の日付かの判定も簡単にできます。
日付処理をするのであれば、ぜひ入れておきたいライブラリです。