ライブラリ -> Moment.js

Posted by muchag | JavaScript,Library & PlugIn & AddIn,困ったTT |
初回投稿:2015-02-02 (月) 14:20:23 | 最終更新:2015-03-28 (土) 18:31:40

日付関連のライブラリ。

JavaScript は、日付関連の操作が弱いそうで
こちらのライブラリを入れておくと、便利だそうな。

【環境】
moment:2.9.0

Moment.js
Moment.js Documentation
 

解析
バリデーション

moment().isValid();

Validation

  1. moment( 日付文字列, フォーマット ).isValid() // true or false
  2.  
  3. moment( '2015-02', 'YYYY-MM' ).isValid() // true
  4.  
  5. moment( '2015-22', 'YYYY-MM' ).isValid() // false

確かに上記はちゃんと動作するのだけど、ちょっとバグがあるかも?
Moment の isValid() が機能しない

表示
フォーマット

moment().format();
moment().format(String);

Format

  1. moment().format( 'YYYY-MM' );

まぁ、いつも通りの感覚で利用すればよいかと。

タイムスタンプ

タイムスタンプのフォーマット文字列を初めて知ったので、覚書。

  1. // 秒単位(Unix Timestamp)
  2. moment().format( 'X' ); // 1360013296
  3.  
  4. // ミリ秒単位(Unix Millisecond Timestamp)
  5. moment().format( 'x' ); // 1360013296123
計算
  1. // 明日の Moment オブジェクトを取得
  2. moment().add( 'days', 1 );
タイムスタンプ

Moment オブジェクトからタイムスタンプを得ると、文字列として返されているみたい。

上記1日後という計算をタイムスタンプでやろうとしたら、取得できなかった。
キャストしてやることで計算できた。

  1. var today = moment().format( 'x' );
  2.  
  3. var tomorrow = today + 1000 * 60 * 60 * 24; // アウト
  4.  
  5. var tomorrow = parseInt( today ) + 1000 * 60 * 60 * 24; // セーフ
初期化

参考サイトに書いてある初期化。
よく意味がわからない。

でも、実際に使っていて、初期化をしないと代入できないケースに遭遇。

  1. // これだと Invalid になる
  2. tsDatetimeNext = moment( tsDatetimeNext ).add( 'minutes', 1 ).format( 'x' );
  3.  
  4. // こちらはちゃんと代入できる
  5. tsDatetimeNext = moment( tsDatetimeNext, 'x' ).add( 'minutes', 1 ).format( 'x' );
参考サイト

アシアルブログ:JavaScriptで日付を扱うならこれ!「moment.js」

Posted by muchag | JavaScript,Library & PlugIn & AddIn,困ったTT |
初回投稿:2015-02-02 (月) 14:20:23 | 最終更新:2015-03-28 (土) 18:31:40

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment