DateTime::format

DateTimeImmutable::format

DateTimeInterface::format

date_format

(PHP 5 >= 5.2.1, PHP 7, PHP 8)

DateTime::format -- DateTimeImmutable::format -- DateTimeInterface::format -- date_format指定した書式でフォーマットした日付を返す

説明

オブジェクト指向型

public DateTime::format(string $format): string
public DateTimeImmutable::format(string $format): string
public DateTimeInterface::format(string $format): string

手続き型

date_format(DateTimeInterface $object, string $format): string

指定した書式でフォーマットした日付を返します。

パラメータ

object

手続き型のみ: date_create() が返す DateTime オブジェクト

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 または thjと一緒に使用する ことができる。
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
Y 年。4 桁以下の数字。紀元前の場合は、- が付きます。 例: -0055, 0787, 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 から 59
s 秒。先頭にゼロをつける。 00 から 59
u マイクロ秒。 date() の場合、これは常に 000000 となることに注意しましょう。というのも、 この関数が受け取るパラメータは int 型だからです。 一方 DateTime をマイクロ秒つきで作成した場合は、 DateTime::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 以降で利用可能) 例: +02:00
T 既知のものについては、タイムゾーンの略称。そうでないものについては、GMT からのオフセット 例: EST, MDT, +05
Z タイムゾーンのオフセット秒数。 UTC の西側のタイムゾーン用のオフセットは常に負です。そして、 UTC の東側のオフセットは常に正です。 -43200 から 50400
全ての日付/時刻 --- ---
c ISO 8601 日付 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() を使用した場合のみです。

戻り値

成功した場合にフォーマット済みの日付文字列を返します。

変更履歴

バージョン 説明
8.0.0 これより前のバージョンでは、失敗時に false を返していました。
8.0.0 フォーマット文字 p が追加されました。

例1 DateTime::format() の例

オブジェクト指向型

<?php
$date 
= new DateTime('2000-01-01');
echo 
$date->format('Y-m-d H:i:s');
?>

手続き型

<?php
$date 
date_create('2000-01-01');
echo 
date_format($date'Y-m-d H:i:s');
?>

上の例の出力は以下となります。

2000-01-01 00:00:00

注意

このメソッドはロケールを考慮しません。出力結果はすべて英語となります。

参考

  • date() - Unixタイムスタンプを書式化する
関連キーワード:  format, フォーマット, 日付, 文字, DateTime, string, 数字, 先頭, date, 形式