Valid XHTML 1.0! Valid CSS!

DateFormatter.js Hatena bookmark

概要

PHPのdate関数のフォーマットパターンと互換性のあるJavaScriptの日付フォーマットライブラリです。 ただし、全てのパターンが実装されているわけではありませんので、注意してください。PHPにない拡張機能として、日本語の曜日と旧暦の月名を表示することができます。

ダウンロード

以下のリンクからダウンロードしてください。

チュートリアル

DateFormatter.jsをロードします。

<script type="text/javascript" src="./DateFormatter.js"></script>

DateFormatterオブジェクトのformatメソッドでフォーマットを行います。例えば、現在の年月日時間を表示するときは以下のようにします。

var now = new Date();
alert(DateFormatter.format(now, "Y/m/d H:i:s"));

表示結果は「2007/01/15 16:30:12」といった形式になります。

フォーマット文字をエスケープする場合には、#を直前に付けます。例えば、「Ymd is 年月日」と表示したい場合は以下のようになります。

var now = new Date();
alert(DateFormatter.format(now, "#Y#m#d #i#s Ymd"));

DateFormatterの呼び出しを毎回コーディングせずに済むようにDateオブジェクトを拡張する方法もあります。

Date.prototype.format = function(pattern) {
  return DateFormatter.format(this, pattern);
}
var now = new Date();
alert(now.format("Y/m/d H:i:s"));

おすすめではありませんが、グローバル関数にすることで、よりPHPらしい書き方もできます。

function date(pattern, time) {
  var d = new Date();
  if (time != null) {
    d.setTime(time);
  }
  return DateFormatter.format(d, pattern);
}
alert(date("Y/m/d H:i:s"));

フォーマット

パターン説明
Y年。4桁。
y年。2桁。
m月。前ゼロあり。
n月。前ゼロなし。
F月。フルスペル。
M月。3文字形式。
O月。旧暦日本語。
d日。前ゼロあり。
j日。前ゼロなし。
w曜日。数値。
l曜日。フルスペル。
D曜日。3文字形式。
N曜日。ISO-8601形式の数値。
J曜日。日本語。
g時。12時間単位。前ゼロなし。
G時。24時間単位。前ゼロなし。
h時。12時間単位。前ゼロあり。
H時。24時間単位。前ゼロあり。
i分。前ゼロあり。
s秒。前ゼロあり。
a午前または午後。(am/pm)
A午前または午後。(AM/PM)
S英語形式の序数を表すサフィックス。2文字。
z年間の通算日。数字。(ゼロから開始)
t指定した月の日数。
L閏年であるかどうか。

ツール

テスト用のフォームです。フォーマットパターンを入力してみてください。

 

ライセンス

BSDライセンスとします。ソフトウェアの使用(実行)は制限なく自由ですが、再配布の際には、ソースコードであれバイナリであれ、 「著作権表示」「条件のリスト」「免責事項」を含める必要があります。