指定された引数 timestamp を、与えられた フォーマット文字列によりフォーマットし、日付文字列を返します。 タイムスタンプが与えられない場合は、現在のローカル時刻が使われます。 つまり timestamp はオプションであり そのデフォルト値は time() の値です。
出力される日付文字列の書式。以下のオプションを参照ください。
表 1. 以下の文字が format パラメータ文字列として認識されます
format 文字 | 説明 | 戻り値の例 |
---|---|---|
日 | --- | --- |
d | 日。二桁の数字(先頭にゼロがつく場合も) | 01 から 31 |
D | 曜日。3文字のテキスト形式。 | Mon から Sun |
j | 日。先頭にゼロをつけない。 | 1 から 31 |
l (lowercase 'L') | 曜日。フルスペル形式。 | Sunday から Saturday |
N | ISO-8601 形式の、曜日の数値表現 (PHP 5.1.0 で追加)。 | 1(月曜日)から 7(日曜日) |
S | 英語形式の序数を表すサフィックス。2 文字。 | st, nd, rd または th。 jと一緒に使用する ことができる。 |
w | 曜日。数値。 | 0 (日曜)から 6 (土曜) |
z | 年間の通算日。数字。(ゼロから開始) | 0 から 365 |
週 | --- | --- |
W | ISO-8601 月曜日に始まる年単位の週番号 (PHP 4.1.0 で追加) | 例: 42 (年の第 42 週目) |
月 | --- | --- |
F | 月。フルスペルの文字。 | January から December |
m | 月。数字。先頭にゼロをつける。 | 01 から 12 |
M | 月。3 文字形式。 | Jan から Dec |
n | 月。数字。先頭にゼロをつけない。 | 1 から 12 |
t | 指定した月の日数。 | 28 から 31 |
年 | --- | --- |
L | 閏年であるかどうか。 | 1なら閏年。0なら閏年ではない。 |
o | ISO-8601 形式の年。これは Y ほぼ同じだが、ISO 週番号 (W)が前年あるいは翌年に属する場合がある点で 異なる(PHP 5.1.0 で追加)。 | 例: 1999 あるいは 2003 |
Y | 年。4 桁の数字。 | 例: 1999または2003 |
y | 年。2 桁の数字。 | 例: 99 または 03 |
時 | --- | --- |
a | 午前または午後(小文字) | am または pm |
A | 午前または午後(大文字) | AM または PM |
B | Swatch インターネット時間 | 000 から 999 |
g | 時。12時間単位。先頭にゼロを付けない。 | 1 から 12 |
G | 時。24時間単位。先頭にゼロを付けない。 | 0 から 23 |
h | 時。数字。12 時間単位。 | 01 から 12 |
H | 時。数字。24 時間単位。 | 00 から 23 |
i | 分。先頭にゼロをつける。 | 00 to 59 |
s | 秒。先頭にゼロをつける。 | 00 から 59 |
タイムゾーン | --- | --- |
e | タイムゾーン識別子(PHP 5.1.0 で追加) | 例: UTC, GMT, Atlantic/Azores |
I (capital i) | サマータイム中か否か | 1ならサマータイム中。 0ならそうではない。 |
O | グリニッジ標準時 (GMT) との時差 | 例: +0200 |
P | グリニッジ標準時 (GMT) との時差。時間と分をコロンで区切った形式 (PHP 5.1.3 で追加)。 | 例: +02:00 |
T | このマシンのタイムゾーンの設定。 | 例: EST, MDT ... |
Z | タイムゾーンのオフセット秒数。 UTC の西側のタイムゾーン用のオフセットは常に負です。そして、 UTC の東側のオフセットは常に正です。 | -43200 から 50400 |
全ての日付/時刻 | --- | --- |
c | ISO 8601 日付 (PHP 5 で追加されました) | 2004-02-12T15:19:21+00:00 |
r | RFC 2822 フォーマットされた日付 | 例: Thu, 21 Dec 2000 16:01:07 +0200 |
U | Unix Epoch (1970 年 1 月 1 日 0 時 0 分 0 秒) からの秒数 | time() も参照 |
フォーマット文字列中の認識されない文字は、そのまま表示されます。 Z 形式は、 gmdate() で使用した場合、常に 0 を返します。
オプションのパラメータ timestamp は、 integer 型の Unix タイムスタンプです。 timestamp が指定されなかった場合のデフォルト値は、 現在の時刻です。言い換えると、デフォルトは time() の返り値となります。
すべての日付/時刻関数は、 有効なタイムゾーンが設定されていない場合に E_NOTICE を発生させます。また、システム設定のタイムゾーンあるいは環境変数 TZ を使用した場合には E_STRICT を発生させます。 date_default_timezone_set() も参照ください。
バージョン | 説明 |
---|---|
5.1.0 | 有効なタイムスタンプの範囲は、通常 Fri, 13 Dec 1901 20:45:54 GMT から Tue, 19 Jan 2038 03:14:07 GMT までです (これらの日付は、32 ビット符号付き整数の最小および最大値に 対応します)。 しかし、PHP 5.1 より前のバージョンでは、システム環境によっては (例: Windows) この範囲が 1970 年 1 月 1 日から 2038 年 1 月 19 日 までに制限されます。 |
5.1.0 | タイムゾーンがおかしい場合に E_STRICT や E_NOTICE が発生するようになりました。 |
5.1.1 | PHP 5.1.1 以降、format パラメータで標準的な 日付/時刻フォーマットを指定する際に有用な 定数がいくつか追加されました。 |
前にバックスラッシュを付けてエスケープすることにより、 フォーマット文字列として認識される文字が展開されることを防止することができます。 バックスラッシュ付きの文字は既に特別なシーケンスであり、 バックスラッシュもエスケープすることが必要となる可能性があります。
date() と mktime() の両方を用いて、未来または過去の日付を知ることができます。
例 3. date() と mktime() の例
|
注意: サマータイムがあるため、日付や月の秒数を単純にタイムスタンプに 可減算するよりもより信頼性があります。
date() フォーマットのいくつかの例を示します。 現在の実装で特別な意味がある文字や今後の PHP のバージョンで意味が 割り付けられるであろう文字については、望ましくない結果を避けるために エスケープする必要があることに注意してください。エスケープを する際には、改行文字 \n のような文字を回避するために シングルクォートを使用してください。
例 4. date() のフォーマット指定
|
他の言語で日付をフォーマットするためには、date() のかわりに setlocale() および strftime() 関数を使用する必要があります。
注意: 日付の文字列表現からタイムスタンプを生成するには、 strtotime() が使用できるでしょう。 さらに、いくつかのデータベースは(MySQL の UNIX_TIMESTAMP 関数の ような)日付フォーマットからタイムスタンプへの変換関数を有しています。
ティップ: PHP 5.1 以降、$_SERVER['REQUEST_TIME'] によってリクエスト開始時のタイムスタンプが取得できるようになりました。