Help us understand the problem. What is going on with this article?

Moment.jsを使う

More than 3 years have passed since last update.

去年にこれ(日付フォーマットなど 日付系処理
書いたんだけど(思いの外ストックされた)、
これはライブラリ使用承認プロセスがとても難儀な環境の時書いたもので、
もしそんな悲しい環境でないなら先人たちの素晴らしいライブラリを使ったほうがいい。
ライブラリを使ういいところは、コーダの独自実装になりにくいし、他のプロジェクトでも知見が使い回しできるところだと思う。

ということでMoment.jsの使い方について書いておく。

Moment.js

GitHubにおいて、現在(2015/1)日付を処理するライブラリの中で多分一番Starがついてる日付系のライブラリ。人気が有るということは正義っぽい。
Qiitaにもたくさん記事ある

公式ドキュメントはこちら。
http://momentjs.com/docs/

Moment.jsはJavaScriptDateオブジェクトをラップするオブジェクトを生成して、そのオブジェクトに日付処理を任せることが出来る。使い方はDateオブジェクトの代わりにmoment()を呼び出してMomentオブジェクトを生成するだけ。

Momentオブジェクト
var now = moment();
console.log(now.toDate()); // Dateオブジェクトが返される

// 文字列からも生成できるし
var shougatsu = moment('2015-01-01');
console.log(shougatsu.toString()); // "Thu Jan 01 2015 00:00:00 GMT+0900"

// もちろんDateオブジェクトからも生成できる
var kodomonohi = moment(new Date('2015-05-05'));
console.log(kodomonohi.toString()); // "Tue May 05 2015 09:00:00 GMT+0900"

日付をフォーマットする

moment.format
var date = moment('2015-01-23');
date.format("MM月DD日"); // "01月23日"

フォーマットの書式は以下。
http://momentjs.com/docs/#/parsing/string-format/

日付を加算する

moment.add
var date = moment('2015-01-23');
date.add(1, "months").format("YYYY-MM-DD"); // 2015-02-23

第二引数に指定するキー('months'とか'days')とかは以下。ショートハンドもある。
http://momentjs.com/docs/#/manipulating/add/

2つの日付の差を計算する

moment.diff
var fromDate = moment('2014-01-01 0:00');
var toDate   = moment('2015-01-01 12:00');
toDate.diff(fromDate, 'days'); // 365

// 第三引数にtrueを渡すと少数まで計算してくれる
toDate.diff(fromDate, 'days', true); // 365.5

// 第二引数を省略するとmsを返す
toDate.diff(fromDate); // 31579200000
osakanafish
🐟
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした