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