moment.jsは日付を扱うライブラリです。フォーマット・差分・演算などの機能があります。
環境
項目 | バージョン |
---|---|
node | 9.11.1 |
moment.js | 2.22.1 |
インストール
npm install --save moment
読み込み
const moment = require('moment');
インスタンス作成
現在日時
moment();
任意フォーマットから文字列から作成
日時フォーマットは以下を参照してください。
日時フォーマット
moment('2018-05-26', 'YYYY-MM-DD');
ISO-8601フォーマットから作成
moment('2018-05-26T06:30:45', moment.ISO_8601);
Unix Timestamp(ミリ秒)から作成
moment(1527283845000);
Unix Timestamp(秒)から作成
moment(1527283845);
日付チェック
moment('2018-05-31', 'YYYY-MM-DD').isValid() // true
moment('2018-05-32', 'YYYY-MM-DD').isValid() // false
フォーマット出力
日時フォーマットは以下を参照してください。
日時フォーマット
moment(1527283845000).format('YYYY-MM-DD HH:mm:ss.SSS');
moment(1527283845000).format(); // ISO-8601
Unix Timestamp(ミリ秒)を取得
moment('2018-05-26T06:30:45', moment.ISO_8601).valueOf();
Unix Timestamp(秒)を取得
moment('2018-05-26T06:30:45', moment.ISO_8601).unix();
日付差分取得
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
指定月の最終日を取得
moment('2018-02', 'YYYY-MM').daysInMonth(); // 28
moment('2020-02', 'YYYY-MM').daysInMonth(); // 29
日時の加減算
インスタンスの日時を変更します。
変更したくない場合は、.clone()
を使用してコピーして使用すると幸せになれます。
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
ECMAScript,Javaを扱います。
最近は、vue.jsなどフロントエンドの技術に興味あり!
中日ドラゴンズを応援してます。
コメント