Nodejsで日付と時間といったらMoment.js

Node.js というか JavaScript 全般だけど、書き方よく忘れるのでメモ。

使い方

インストール

$ npm install moment

プログラム側で moment の読み込み

var moment = require('moment');

moment オブジェクトを作成

var mNow = moment(); //現在時間
var mUnix = moment(1411105655079); //UNIX時間で指定
var mJst = moment('2014-10-08T19:50:59+09:00'); //ISO8601 形式で JST の指定
var mUtc = moment('2014-10-09T06:25:15.186Z'); //ISO8601 形式で UTC の指定

現在時間を文字列で出力

var s1 = moment().format();
var s2 = moment().format('YYYY-MM-DD HH:mm:ss');
var s3 = moment().format('YYYY年MM月DD日HH時mm分ss秒');
console.log(s1); //2014-10-01T15:54:41+09:00
console.log(s2); //2014-10-01 15:54:41
console.log(s3): //2014年10月01日15時54分41秒

指定した時間の Unix 時間を取得

2000-01-01 00:00:00.000 の場合

var m = moment();
m.years(2000);
m.months(0); //月は0-12
m.dates(1); //dates()は月の日数で1-31, days()は週の日数で0-6
m.hours(0);
m.minutes(0);
m.seconds(0);
m.milliseconds(0);
console.log(+m); //946652400000

※moment().unix() はミリ秒ではなく秒を返す関数のため使わない

時間を足したり引いたり

1 週間後と 3 日前

var m1 = moment();
var m2 = moment().add(1, 'weeks');
var m3 = moment().subtract(3, 'days');
console.log(m1.format()); //2014-10-01T16:30:28+09:00
console.log(m2.format()); //2014-10-08T16:30:28+09:00
console.log(m3.format()); //2014-09-28T16:30:28+09:00