日時を扱うmoment.js

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

コメント

タイトルとURLをコピーしました