DateTimeInterface::format
DateTimeImmutable::format
DateTime::format
date_format
指定した書式でフォーマットした日付を返す
&reftitle.description;
&style.oop;
public string DateTimeInterface::format
string format
public string DateTimeImmutable::format
string format
public string DateTime::format
string format
&style.procedural;
string date_format
DateTimeInterface object
string format
指定した書式でフォーマットした日付を返します。
&reftitle.parameters;
&date.datetime.description;
format
出力される日付文字列の書式。以下のオプションを参照ください。
定義済みの定数
も用意されており、たとえば DATE_RSS はフォーマット文字列
'D, d M Y H:i:s' と同じ意味になります。
以下の文字が format
パラメータ文字列として認識されます
format 文字
説明
戻り値の例
日
---
---
d
日。二桁の数字(先頭にゼロがつく場合も)
01 から 31
D
曜日。3文字のテキスト形式。
Mon から Sun
j
日。先頭にゼロをつけない。
1 から 31
l (小文字の 'L')
曜日。フルスペル形式。
Sunday から Saturday
N
ISO 8601 形式の、曜日の数値表現
1 (月曜日)から 7 (日曜日)
S
英語形式の序数を表すサフィックス。2 文字。
st , nd , rd
または th 。 j と一緒に使用する
ことができる。
w
曜日。数値。
0 (日曜)から 6 (土曜)
z
年間の通算日。数字。(ゼロから開始)
0 から 365
週
---
---
W
ISO 8601 月曜日に始まる年単位の週番号
例: 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 )が前年あるいは翌年に属する場合はそちらの年を使うという点が異なる。
例: 1999 あるいは 2003
X
拡張された年の数値表現。少なくとも4桁からなる数値。紀元前の場合は、- が付きます。西暦の場合は + が付きます。
例: -0055 , +0787 ,
+1999 , +10191
x
必要に応じて拡張された年の数値表現。
拡張する必要がない場合は、通常の年の数値 (Y と同じ)。
少なくとも4桁からなる数値。紀元前の場合は、- が付きます。10000 (10000を含みます) を超える場合は、+ が付きます。
例: -0055 , 0787 ,
1999 , +10191
Y
年。少なくとも4桁からなる数値。紀元前の場合は、- が付きます。
例: -0055 , 0787 ,
1999 , 2003 , 10191
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 から 59
s
秒。先頭にゼロをつける。
00 から 59
u
マイクロ秒。
date の場合、これは常に
000000 となることに注意しましょう。というのも、
この関数が受け取るパラメータは int 型だからです。
一方 DateTimeInterface 型のオブジェクトをマイクロ秒つきで作成した場合は、
DateTimeInterface::format はマイクロ秒にも対応しています。
例: 654321
v
ミリ秒。
u と同じ注釈が当てはまります。
例: 654
タイムゾーン
---
---
e
タイムゾーン識別子
例: UTC , GMT , Atlantic/Azores
I (大文字の i)
サマータイム中か否か
1 ならサマータイム中。 0 ならそうではない。
O
グリニッジ標準時 (GMT)
との時差。時間と分の間にコロンは入りません。
例: +0200
P
グリニッジ標準時 (GMT) との時差。時間と分をコロンで区切った形式
例: +02:00
p
P と同じですが、+00:00 ではなく Z を返します。
(PHP 8.0.0 以降で利用可能)
例: Z または +02:00
T
既知のものについては、タイムゾーンの略称。そうでないものについては、GMT からのオフセット
例: EST , MDT , +05
Z
タイムゾーンのオフセット秒数。
UTC の西側のタイムゾーン用のオフセットは常に負です。そして、
UTC の東側のオフセットは常に正です。
-43200 から 50400
全ての日付/時刻
---
---
c
ISO 8601 日付。拡張されていないフォーマット(9999年まで)とだけ、互換性があります。それより未来の日付は無効な文字列になります。そうした日付と拡張フォーマットについては、x と X を参照ください。
2004-02-12T15:19:21+00:00
r
RFC 2822/ RFC 5322 形式でフォーマットされた日付
例: Thu, 21 Dec 2000 16:01:07 +0200
U
Unix Epoch (1970 年 1 月 1 日 0 時 0 分 0 秒) からの秒数
time も参照
フォーマット文字列中の認識されない文字は、そのまま表示されます。
Z 形式は、
gmdate で使用した場合、常に 0
を返します。
この関数が受け付けるのは int
のタイムスタンプだけです。したがって、書式指定文字
u が有用となるのは
date_create で作成したタイムスタンプを用いて
date_format を使用した場合のみです。
&reftitle.returnvalues;
成功した場合にフォーマット済みの日付文字列を返します。
&reftitle.changelog;
&Version;
&Description;
8.2.0
フォーマット文字に
X と x
が追加されました。
8.0.0
フォーマット文字 p が追加されました。
&reftitle.examples;
DateTimeInterface::format の例
&style.oop;
format('Y-m-d H:i:s');
?>
]]>
&example.outputs;
&style.procedural;
]]>
&example.outputs;
例をもう少し
format('l'), "\n";
// Wednesday 19th of October 2022 08:40:48 AM のような値を出力
echo $date->format('l jS \o\f F Y h:i:s A'), "\n";
/* フォーマット文字で定数を使う */
// Wed, 19 Oct 2022 08:40:48 +0000 のような値を出力
echo $date->format(DateTimeInterface::RFC2822), "\n";
?>
]]>
フォーマット文字列の中で既知の文字が展開されることを防ぐために、
バックスラッシュでエスケープすることができます。
バックスラッシュ付きの文字が既に特殊な意味を持つ場合は、
バックスラッシュもエスケープする必要があるでしょう。
フォーマット中に文字をエスケープする
format('l \t\h\e jS');
?>
]]>
他の言語で日付をフォーマットするには、
DateTimeInterface::format
ではなく
IntlDateFormatter::format
を使います。
&reftitle.notes;
このメソッドはロケールを考慮しません。出力結果はすべて英語となります。
&reftitle.seealso;
IntlDateFormatter::format