JavaScriptで日時を扱うmoment.js


JavaScriptで日付オブジェクトを扱う場合は「moment.js」がオススメです。JavaScriptのDateオブジェクトよりも断然扱いやすく日付計算や文字列フォーマットの整形、バリデーションを簡単に行うことができます。

moment.jsのイメージ

🤔 インストール手順

npm経由でインストール

プロジェクトフォルダで以下を実行します。

npm install moment --save

コード内では次のように呼び出します。

var moment = requre('moment');
moment().format();

CDN経由でスクリプトを読み込み

スクリプトをCDN経由で読み込みます。

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/locale/ja.js integrity=sha256-LgbT9arTxUvmvXEAEK6+gZY0fveTqT7zvB5mpLuXOXs= crossorigin=anonymous"></script>

スクリプト内では、次のように呼び出します。

var m = moment(); //現在の時刻が入る
var output = m.format('YYYY年MM月DD日 HH:mm:ss');

🐰 使い方

指定した文字列フォーマットで出力

moment().format('MMMM Do YYYY, h:mm:ss a'); // 5月 11日 2017, 8:36:01 午前
moment().format('dddd'); // 木曜日
moment().format(); // 2017-05-11T08:36:01+09:00

相対的な日付を計算して表示

moment('20111031', 'YYYYMMDD').fromNow(); // 6年前
moment().startOf('day').fromNow(); // 9時間前
moment().endOf('day').fromNow(); // 15時間後

パースできる日付のフォーマットの詳細は次のリンクを参考にしてください。

日付の加算・減算

moment().subtract(10, 'days').calendar(); // 2017/05/01
moment().subtract(6, 'days').calendar(); // 前週金曜日 08:36
moment().subtract(1, 'days').calendar(); // 昨日 08:36
moment().calendar(); // 今日 08:36
moment().add(1, 'days').calendar(); // 明日 08:36
moment().add(3, 'days').calendar(); // 来週日曜日 08:36
moment().add(10, 'days').calendar(); // 2017/05/21

年月日時分秒の取得

var m = moment();
m.year(); // 年
m.month(); // 月 ※ 0〜11の値!
m.date(); // 日
m.day(); // 曜日
m.hours(); // 時
m.minutes(); // 分
m.seconds(); // 秒

5/1から今日まで日数の取得

moment().diff(moment([2017, 5, 1]), 'days'); //=> 10

今月の日数の取得

moment().daysInMonth() //=> 31

🐞 参考リンク

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍