Rewish

ウェブデザイン、HTML、CSS、JavaScript、PHP、WordPress、Movable Typeなど、Web制作で役立つかも知れないBlog.

JavaScriptのDateオブジェクトを拡張してPHPのdate関数を実装

カテゴリー
JavaScript
タグ
Download

某勉強会のグループチャットにて、『JavaScriptでXMLを取得、パースして適当に表示しなさい』と言う宿題が出た時、ちょっと欲しいなぁと思ったので勉強がてら作ってみました。

一応date関数に対応する全てのフォーマット文字列が使えますが、タイムゾーン周りを正確に実装するのは実質不可能なので、eは「Asia/Tokyo」、Tは「JST」固定になっています。

その他、副産物で日付周りのメソッドも色々生えてるので、良かったら使ってみて下さい。

目次

  1. ダウンロード
  2. 簡単な使い方
  3. APIドキュメント
  4. 利用シーン

ダウンロード

php_date.js - 圧縮版 - v0.2.0

  1. 2009-09-09 - v0.2.0 - パース部分を大幅に書き換え
  2. 2009-08-26 - v0.1.2 - パース部分を修正
  3. 2009-08-25 - v0.1.1 - パース部分を修正
  4. 2009-08-19 - v0.1.0 - 公開

簡単な使い方

date関数風に使う基本

インスタンス化したDateオブジェクトのformatメソッドを使ってdate関数風にフォーマット。

var obj = new Date;
alert(obj.format('Y-m-d H:i:s'));
// 2005-08-15 15:52:01

定数を使う

定義済みの定数にある定数(っぽいモノ)も使えます。

var obj = new Date;
alert(obj.format(Date.ISO8601));
// 2005-08-15T15:52:01+09:00
alert(obj.format(Date.RFC822));
// Mon, 15 Aug 05 15:52:01 +0900

日付文字列をパース

Date.parse()を拡張して、定数で定義されているフォーマットもパース出来るようにしました。

alert(Date.parse('2005-08-15T15:52:01+09:00'));
// 1124088721000
alert(Date.parse('Wed, 19 Aug 09 00:12:58 +0900'));
// 1250608378000

フォーマット文字列と同時にタイムスタンプもセット

formatメソッドの第二引数に ミリ秒単位のUNIXタイムスタンプ または Date.parse()でパース出来る日付文字列 をセットすることで好きな日時を出力できます。

var obj = new Date;
alert(obj.format('Y-m-d H:i:s', 1124088721000));
// 2005-08-15 15:52:01
alert(obj.format('Y-m-d H:i:s', '2009-12-20T18:32:31+00:00'));
// 2009-12-20 09:32:31

※セットした日時は日付を出力するまでの間のみ有効です。継続的に日付をセットしたい場合はsetTimeメソッドを使用して下さい。

以上、簡単な使い方でした。

APIドキュメント

JavaScript用のドキュメント自動出力ツールJsDoc Toolkitを使ってAPIドキュメントを作成してみました。しかしJsDoc Toolkitはあんまりメジャーじゃないっぽいですね。

詳しくはAPIリファレンスをご覧下さい。

利用シーン

作っておいて何ですが、JavaScriptでガッツリ日付処理する事ってあんまり無いですね。