【JavaScript】Moment.jsを使ってみた

jsの日付処理ライブラリ Moment.jsを使ってみました。

Moment.jsを使ってみた

フロントエンドの場合は CDN から読み込める。Nodeで使う場合はnpmです。

$ npm install moment --save

現在時刻の取得。粒度はmillisecondsまで。

// moment-2.8.4
var moment = require('moment');

var m = moment()
console.log(m.format("YYYY-MM-DD HH:mm")) // => 2014-12-26 17:55

// methods
m.year();
m.month();
m.date();
m.day();
m.hours();
m.minutes();
m.seconds();
m.milliseconds();

演算系のメソッド紹介。
isValid()で存在する日付の有無, add()とsubtract()で加算と減算, diff()で時間単位を指定して比較, isAfter()で前後関係を調べることができます。

// isValid 
var isValid = moment("2014-11-31", "YYYY-MM-DD").isValid();
console.log(isValid) // => false

// add / subtract
var after = moment().add(10, 'days').format('YYYY/MM/DD HH:mm:ss');
var before = moment().subtract(10, 'days').format('YYYY/MM/DD HH:mm:ss');
console.log(after) // => 2015/01/05 17:55:55
console.log(before) // => 2014/12/16 17:55:55

// array
var from = moment([2014, 12, 1])
var to = moment([2014, 12, 31])
// diff / isAfter
var diff = to.diff(from, "days");
console.log(diff) // => true
var isAfter = to.isAfter(from);
console.log(isAfter) // => 30

util系のメソッド紹介。
daysInMonth()で月間の日数が取得でき, locale(‘ja’, …)で設定すると日本語変換されて曜日が取得できます。

// daysInMonth
var days = moment().daysInMonth()
console.log(days) // => 31

// ja
moment.locale('ja', {
    weekdays: ["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"],
    weekdaysShort: ["日","月","火","水","木","金","土"],
});

var m_ja = moment()
console.log(m_ja.format("MM/DD (ddd)")) // => 12/26 (金)
console.log(m_ja.format("MM/DD dddd")) // => 12/26 金曜日

ここまで書いておいてあれだけど, docs が充実でしているので, そっちを見た方が早い。