http://momentjs.com/
javascriptで時刻操作や表現をしたい場合のライブラリ
install
npm install moment # npm
bower install moment # bower
使い方
現在時刻を文字列で取得
format
を使うことで、好きな形式で文字列を得ることが出来る。
var moment = require("moment");
// 現在時刻を取得する例
moment().format(); // 2014-07-16T09:00:00+09:00 (default)
moment().format("YYYY-MM-DD"), // 2014-07-17
moment().format("YYYY-MM-DD HH:mm:ssZ"), // 2014-07-17 10:00:00+09:00
moment().format("dddd, MMMM Do YYYY, h:mm:ss a") // "Thursday, July 17th 2014, 10:00:00 am”
format以外も、色々な形式で取得可能
moment().toDate() // Date型で取得
moment().unix() // unix timestampで取得
moment().toISOString() // `2014-07-17T10:00:00.964Z` ISO8601 フォーマットの文字列で取得
パース
moment()
に文字列などを渡すことで、指定した時刻オブジェクトを生成できる
moment() // デフォルト: 現在時刻
moment("2013-02-08T09:30:26") // 文字列で設定
moment({years: 2013, months: 2, days: 8, hours: 9, minutes: 30, seconds: 26}) // オブジェクトで設定
moment(1404817278000) // UNIX時間 (ミリ秒)
moment.unix(1404817278) // UNIX時間 (秒)
moment(new Date(2014, 7,8)) // Date
moment([2014, 7, 8]) // Array
設定した値から正しくパース出来ているかはisValid()
で確認出来る。
moment("not a real date").isValid(); // false
UTC
デフォルトのタイムゾーンはシステム依存。
UTCで取得したい場合は utc()
を使う。
最初に設定した時刻をUTCに変更も出来るし、
moment.utc()
を使って、最初からUTCとして時刻を取り扱うことも出来る。
moment("2014-03-01 12:00:00").format(); // 2014-03-01T12:00:00+09:00
moment("2014-03-01 12:00:00").utc().format(); // 2014-03-01T00:00:00+09:00
moment.utc("2014-03-01 12:00:00").format() // 2014-03-01T12:00:00+00:00
日時操作
add()
などを使って、日時のプラスマイナスを指定することが出来る
moment('2014-04-01').add(1, 'days').format() // 2014-04-02T00:00:00+09:00 (1日後)
moment('2014-04-01').add(-1, 'days').format() // 2014-03-31T00:00:00+09:00 (1日前)
// メソッドチェーンで操作可能
moment('2014-04-01').add(1, 'M').add(2, 'd').format() // 2014-05-03T00:00:00+09:00