LoginSignup
231

More than 3 years have passed since last update.

momentで時間データの操作を楽にする

Last updated at Posted at 2014-07-17

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
231