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

  • 103
    Like
  • 0
    Comment
More than 1 year has 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()など一部仕様が違うため注意。最新仕様は公式サイト参照。