プログラムにおいて、日付というのは厄介な存在だ。表示形式は様々に存在し、タイムゾーンもあり、60進数と12進数がおり混ざっている。

ピクチャ 1-24

Railsでは翌週金曜日をnext_week(:friday)といった形式で呼び出せる。この拡張がエレガントで惹かれる。同様の操作を実現するJavaScriptライブラリがこれだ。

今回紹介するオープンソース・ソフトウェアはDatejs、日付を扱うために生まれたJavaScriptライブラリだ。

Datejsは文字列を日付形式にパースしたり、計算すると言った操作ができるライブラリだ。Date.today()からはじまって、Date.today().next().friday()で翌週金曜日になる。

日付の計算も用意で、Date.today().addMonths(-3)で三ヶ月前になる。(3).months().ago()でも三ヶ月前になるらしい。面白い。
ピクチャ 2-23

パースする機能は、todayやtomorrowといった文字列や、next fridayといった形でも日付に変換される。“July 8th, 2004, 10:30 PM”、“2004-07-15T06:45:00”、“Thu, 1 July 2004 22:30:00 GMT"等、様々な形式に対応している。

toString()も強力で、日付データの出力に対して、様々なフォーマットを指定できる"yyyy/M/d"はもちろん、“HH:mm"など数多い。
ピクチャ 3-16

JavaScriptの魅力はprototypeをはじめ、柔軟に拡張できる点にあるだろう。こうしたライブラリを知っておくと、生産性が大きく変わってくるはずだ。尚、難読化された状態で25KB超あるので、若干大きめのライブラリと言えそうだ。

datejs - Google Code
 http://code.google.com/p/datejs/

Datejs - A JavaScript Date Library » About…
 http://www.datejs.com/