Edited at

日付処理が楽になる!Moment.jsの使い方

More than 3 years have passed since last update.


Moment.jsとは

JavaScriptで日付の処理は面倒ですが、いろいろと便利にしてくれるのが、Moment.jsです。


備考


  • Moment.jsは、ver 2.8.3で確認

  • 2014年10月24日に実施したので、それを元に以下計算されてます


基本的な使い方

JSを読み込む

<script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.2/moment.min.js"></script>

以降、script内

// momentオブジェクトをセット

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

console.log(output); // => 2014年10月24日 11:44:00 Friday


各単位で出力

var m = moment();

// 各単位のメソッド
/*
m.year(); // 年
m.month(); // 月 ※ 0〜11の値(始まりが0なので-1で計算)
m.date(); // 日
m.day(); // 曜日
m.hours(); // 時
m.minutes(); // 分
m.seconds(); // 秒
m.milliseconds(); // ミリ秒
*/

console.log(m.year()); // => 2014


現在の時刻ではなく、指定した日付の場合

// momentオブジェクトをセット

var m = moment("20150101", "YYYYMMDD"); // 第一引数:指定日時、第二引数:フォーマット
var output = m.format('YYYY年MM月DD日 HH:mm:ss dddd');

console.log(output); // => 2015年01月01日 00:00:00 Thursday


今日から指定日数まで何日か計算

var output = moment().add(30, 'days').format('YYYY年MM月DD日'); // add第一引数:日数、第二引数:単位   

console.log(output); // => 2014年11月23日

※加算の場合はadd()、減算の場合はsubtract()を使う


指定日から何日経過したか計算

var output = moment().diff(moment([2014, 4, 1]), "days");

console.log(output); // => 176

もちろん、今日だけじゃなく、AとBの差も計算できます。


参考文献

詳しくは以下が参考になります。

※ただし、Moment.jsのバージョンが古いときの記事のため、add()など一部仕様が違うため注意。最新仕様は公式サイト参照。