moment.jsは日付を扱うライブラリです。フォーマット・差分・演算などの機能があります。
環境
項目 | バージョン |
---|---|
node | 9.11.1 |
moment.js | 2.22.1 |
インストール
1 2 |
npm install --save moment |
読み込み
1 2 |
const moment = require('moment'); |
インスタンス作成
現在日時
1 2 |
moment(); |
任意フォーマットから文字列から作成
日時フォーマットは以下を参照してください。
日時フォーマット
1 2 |
moment('2018-05-26', 'YYYY-MM-DD'); |
ISO-8601フォーマットから作成
1 2 |
moment('2018-05-26T06:30:45', moment.ISO_8601); |
Unix Timestamp(ミリ秒)から作成
1 2 |
moment(1527283845000); |
Unix Timestamp(秒)から作成
1 2 |
moment(1527283845); |
日付チェック
1 2 3 |
moment('2018-05-31', 'YYYY-MM-DD').isValid() // true moment('2018-05-32', 'YYYY-MM-DD').isValid() // false |
フォーマット出力
日時フォーマットは以下を参照してください。
日時フォーマット
1 2 3 |
moment(1527283845000).format('YYYY-MM-DD HH:mm:ss.SSS'); moment(1527283845000).format(); // ISO-8601 |
Unix Timestamp(ミリ秒)を取得
1 2 |
moment('2018-05-26T06:30:45', moment.ISO_8601).valueOf(); |
Unix Timestamp(秒)を取得
1 2 |
moment('2018-05-26T06:30:45', moment.ISO_8601).unix(); |
日付差分取得
1 2 3 4 5 6 7 8 9 10 |
const dateA = moment('2018-05-26T06:00:00'); const dateB = moment('2018-05-20T00:00:00'); // ミリ秒で差分を返す dateA.diff(dateB); // 540000000 // 指定単位で差分を返す dateA.diff(dateB, 'days'); // 6 // 小数値を含んで返す dateA.diff(dateB, 'days', true); // 6.25 |
指定月の最終日を取得
1 2 3 |
moment('2018-02', 'YYYY-MM').daysInMonth(); // 28 moment('2020-02', 'YYYY-MM').daysInMonth(); // 29 |
日時の加減算
インスタンスの日時を変更します。
変更したくない場合は、.clone()
を使用してコピーして使用すると幸せになれます。
1 2 3 4 5 6 7 8 |
const date20180301 = moment('2018-03-01', 'YYYY-MM-DD'); date20180301.clone().add(1, 'days'); // 2018-03-02 date20180301.clone().subtract(1, 'days'); // 2018-02-28 // オブジェクトで複数値変更 date20180301.clone().add({years: 1, days: 1}); // 2019-03-02 date20180301.clone().subtract({years: 1, days: 1}); // 2017-02-28 |