Help us understand the problem. What is going on with this article?

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

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away