menu
ホーム > PHPサンプル > 日付系 > PHP 日付のフォーマット date()/strtotime()/DateTimeクラス
PHPサンプル

UPDATE:2019年06月04日

PHP 日付のフォーマット date()/strtotime()/DateTimeクラス

PHP 日付のフォーマット date()/strtotime()/DateTimeクラス | wepicks!

PHP4 PHP5 PHP7

PHP 日付のフォーマット

PHP で日付を取得する date() や strtotime() には、パラメーター(関数に送る値)にフォーマットがあります。例えば date('Ymd'); とすると、現在の年月日が YYYYMMDD の形式で取得できます。

書式 date()
日付文字列 = date(フォーマット [,UNIXタイムスタンプ]);
//[ ]省略可(タイムスタンプがない場合現在日付となる)
//返り値は文字列(string)
date()フォーマット
書式 strtotime()
指定日時のUNIXタイムスタンプ = strtotime(英文形式の日時);
//返り値は数値(int)
strtotime() 英文形式フォーマット
書式 DateTimeクラス
インスタンス = new DateTime();
DateTime() フォーマット
サンプル


date() フォーマット

date() フォーマット

取得内容フォーマット文字説明戻り値の例
Y年 4 桁の数字1999 や 2019
y年 2 桁の数字99 や 19
L閏年かどうか。1なら閏年。0なら閏年ではない。1 か 0
echo date('Y');//2019
echo date('y');//19
echo date('L');//0
F月 フルスペルの文字January~December
m月 数字。先頭にゼロをつける01~12
M月 3 文字形式Jan~Dec
n月 数字。先頭にゼロをつけない1~12
t月 指定した月の日数28~31
echo date('F');//May
echo date('m');//05
echo date('M');//May
echo date('n');//5
echo date('t');//31
d日 2桁の数字(先頭にゼロがつく場合も)01~31
j日 数字。先頭にゼロをつけない1~31
echo date('d');//07
echo date('j');//7
曜日D3文字のテキスト形式Mon~Sun
lフルスペル形式Sunday~Saturday
N数字1(月曜) から 7(日曜)
w数字0(日曜) から 6(土曜)
W数字月曜日に始まる年単位の週番号
echo date('D');//Wed
echo date('l');//Wednesday
echo date('N');//3
echo date('w');//3
echo date('W');//21
g12時間単位。先頭ゼロなし1~12
G24時間単位。先頭ゼロなし0~23
h12時間単位。先頭ゼロあり01~12
H24時間単位。先頭ゼロあり00~23
a午前/午後。小文字表示am pm
A午前/午後。大文字表示AM PM
echo date('g');//12
echo date('G');//0
echo date('h');//12
echo date('H');//00
echo date('a');//pm
echo date('A');//PM
i先頭ゼロあり00~59
echo date('i');//59
s先頭ゼロあり00~59
echo date('s');//01
ミリ秒vミリ秒 (PHP 7.0.0 で追加) uと同じ注釈が当てはまります。000~999
echo date('v');//000
マイクロ秒uマイクロ秒 (PHP 5.2.2 で追加)。date() の場合、これは常に 000000 となることに注意。というのも、この関数が受け取るパラメータは integer 型だからです。一方 DateTime をマイクロ秒つきで作成した場合は、DateTime::format() はマイクロ秒にも対応しています。000000~999999
echo date('u');//000000
全日付cISO8601 フォーマット日付2019-05-15T01:04:54+09:00
rRFC2822 フォーマット日付Wed, 15 May 2019 01:04:54 +0900
echo date('c');//2019-05-15T01:04:54+09:00
echo date('r');//Wed, 15 May 2019 01:04:54 +0900
タイムゾーンオフセット秒数ZUTC(世界協定時間=グリニッジ天文台が有る場所東経0度の場所を基準にして決められている時間)の西側のタイムゾーン用のオフセット秒数は常に負になります。UTCの東側のオフセット秒数は常に正になります。 日本は32400なので、+9時間です。-43200 ~ 50400
echo date('Z');//32400
UNIX時間からの秒数UUnix Epoch(エポック秒(UNIX時間))=1970年1月1日0時0分0秒からの秒数1557850516
echo date('U');//1557850516

strtotime() 英文形式フォーマット

strtotime() 英文形式フォーマット

英文形式フォーマットで指定した日時のUNIXタイムスタンプを取得します。
※UNIXタイムスタンプは、1970年1月1日00時00分00秒UTC(協定世界時と一致する標準時)らの経過秒数です。例えば2019年5月15日1時34分25秒のUNIXタイムスタンプは 1557851665 となります。
戻り値の例やサンプルの結果は 2019-01-01 00:00:00 に実行した場合
取得内容フォーマット文字内容戻り値の例
今現在now今現在のUNIXタイムスタンプ1546268400
<?php echo strtotime("now");//1546268400 ?>
<?php echo date('Y-m-d H:i:s', strtotime('now'));//2019-01-01 00:00:00 ?>
本日today本日のUNIXタイムスタンプ1546268400
<?php echo strtotime("today");//1546268400 ?>
<?php echo date('Y-m-d', strtotime('today'));//2019-01-01 ?>
昨日yesterday昨日のUNIXタイムスタンプ1546182000
<?php echo strtotime("yesterday");//1546182000 ?>
<?php echo date('Y-m-d', strtotime('yesterday'));//2018-12-31 ?>
明日tomorrow明日のUNIXタイムスタンプ1546354800
<?php echo strtotime("tomorrow");//1546354800 ?>
<?php echo date('Y-m-d', strtotime('tomorrow'));//2019-01-02 ?>
今週this week今週の月曜日のUNIXタイムスタンプ1546182000
<?php echo strtotime("this week");//1546182000 ?>
<?php echo date('Y-m-d', strtotime('this week'));//2018-12-31 ?>
先週last week先週の月曜日のUNIXタイムスタンプ1545577200
<?php echo strtotime("last week");//1545577200 ?>
<?php echo date('Y-m-d', strtotime('last week'));//2018-12-24 ?>
来週next week来週の月曜日のUNIXタイムスタンプ1546786800
<?php echo strtotime("next week");//1546786800 ?>
<?php echo date('Y-m-d', strtotime('next week'));//2019-01-07 ?>
今月this month今月の同日のUNIXタイムスタンプ1546268400
<?php echo strtotime("this month");//1546268400 ?>
<?php echo date('Y-m-d', strtotime('this month'));//2019-01-01 ?>
先月last month先月の同日のUNIXタイムスタンプ1543590000
<?php echo strtotime("last month");//1543590000 ?>
<?php echo date('Y-m-d', strtotime('last month'));//2018-12-01 ?>
来月next month来月の同日のUNIXタイムスタンプ1548946800
<?php echo strtotime("next month");//1548946800 ?>
<?php echo date('Y-m-d', strtotime('next month'));//2019-02-01 ?>
今年this year今年の同日のUNIXタイムスタンプ1546268400
<?php echo strtotime("this year");//1546268400 ?>
<?php echo date('Y-m-d', strtotime('this year'));//2019-01-01 ?>
去年last year去年の同日のUNIXタイムスタンプ1514732400
<?php echo strtotime("last year");//1514732400 ?>
<?php echo date('Y-m-d', strtotime('last year'));//2018-01-01 ?>
来年next year来年の同日のUNIXタイムスタンプ1577804400
<?php echo strtotime("next year");//1577804400 ?>
<?php echo date('Y-m-d', strtotime('next year'));//2020-01-01 ?>
指定日付1 January 2019指定日付のUNIXタイムスタンプ1546268400
<?php echo strtotime("1 January 2019");//1546268400 ?>
<?php echo date('Y-m-d', strtotime("1 January 2019"));//2019-01-01 ?>
指定日時2019-01-02 03:04:05指定日時のUNIXタイムスタンプ1546365845
<?php strtotime('2019-01-02 03:04:05');//1546365845 ?>
<?php date('Y-m-d H:i:s', strtotime('2019-01-02 03:04:05'));//2019-01-02 03:04:05 ?>
本日から 年 月 日 週 を加算 (+ 省略可/- も可)+1 day +1 week +1 month +1 year年 月 日 週 の + - 指定のUNIXタイムスタンプ1581174000
<?php echo strtotime("+1 day +1 week +1 month +1 year");//1581174000 ?>
<?php echo date('Y-m-d', strtotime('+1 day +1 week +1 month +1 year'));//2020-02-09 ?>
今から+1時間1分1秒 (+ 省略可/- も可)+1 hours +1 min +1 seconds時、分、秒 の + - 指定のUNIXタイムスタンプ1546272061
<?php echo strtotime("+1 hours +1 min +1 seconds");//1546272061 ?>
<?php echo date('Y-m-d H:i:s', strtotime('+1 hours +1 min +1 seconds'));//2019-01-01 01:01:01 ?>
次の木曜日Thursday
next Thursday
次の木曜日のUNIXタイムスタンプ1546441200
<?php echo strtotime("Thursday");//1546441200 ?>
<?php date('Y-m-d', strtotime("Thursday"));//2019-01-03 ?>
前の木曜日last Thursday前の木曜日のUNIXタイムスタンプ1545836400
<?php echo strtotime("last Thursday");//1545836400 ?>
<?php date('Y-m-d', strtotime("last Thursday"));//2018-12-27 ?>
月の最初の日first day of this month指定月の最初の日のUNIXタイムスタンプ1546268400
<?php echo strtotime("first day of this month");//1546268400 ?>
<?php echo date('Y-m-d', strtotime("first day of this month"));//2019-01-01 ?>
月の最後の日last day of this month指定月の最後の日のUNIXタイムスタンプ1548860400
<?php echo strtotime("last day of this month");//1548860400 ?>
<?php echo date('Y-m-d', strtotime("last day of this month"));//2019-01-31 ?>
指定日から + -2020-01-01 00:00:00 +1 seconds +1 min +1 hours +1 day +1 week +1 month +1 year指定日から + - したUNIXタイムスタンプ1612800061
<?php
$format = '2020-01-01 00:00:00 +1 seconds +1 min +1 hours +1 day +1 week +1 month +1 year';
echo strtotime($format);//1612800061
echo date('Y-m-d H:i:s', strtotime($format));//2021-02-09 01:01:01
?>

DateTime()クラス フォーマット

DateTimeクラス format()メソッド フォーマット

取得内容フォーマット文字説明戻り値の例
Y年 4 桁の数字1999 や 2019
y年 2 桁の数字99 や 19
L閏年かどうか。1なら閏年。0なら閏年ではない。1 か 0
$objDateTime = new DateTime();
echo $objDateTime->format('Y');//2019
echo $objDateTime->format('y');//19
echo $objDateTime->format('L');//0
F月 フルスペルの文字January~December
m月 数字。先頭にゼロをつける01~12
M月 3 文字形式Jan~Dec
n月 数字。先頭にゼロをつけない1~12
t月 指定した月の日数28~31
$objDateTime = new DateTime();
echo $objDateTime->format('F');//May
echo $objDateTime->format('m');//05
echo $objDateTime->format('M');//May
echo $objDateTime->format('n');//5
echo $objDateTime->format('t');//31
d日 2桁の数字(先頭にゼロがつく場合も)01~31
j日 数字。先頭にゼロをつけない1~31
$objDateTime = new DateTime();
echo $objDateTime->format('d');//07
echo $objDateTime->format('j');//7
曜日D3文字のテキスト形式Mon~Sun
lフルスペル形式Sunday~Saturday
N数字1(月曜) から 7(日曜)
w数字0(日曜) から 6(土曜)
W数字月曜日に始まる年単位の週番号
$objDateTime = new DateTime();
echo $objDateTime->format('D');//Wed
echo $objDateTime->format('l');//Wednesday
echo $objDateTime->format('N');//3
echo $objDateTime->format('w');//3
echo $objDateTime->format('W');//21
g12時間単位。先頭ゼロなし1~12
G24時間単位。先頭ゼロなし0~23
h12時間単位。先頭ゼロあり01~12
H24時間単位。先頭ゼロあり00~23
a午前/午後。小文字表示am pm
A午前/午後。大文字表示AM PM
$objDateTime = new DateTime();
echo $objDateTime->format('g');//12
echo $objDateTime->format('G');//0
echo $objDateTime->format('h');//12
echo $objDateTime->format('H');//00
echo $objDateTime->format('a');//pm
echo $objDateTime->format('A');//PM
i先頭ゼロあり00~59
$objDateTime = new DateTime();
echo $objDateTime->format('i');//59
s先頭ゼロあり00~59
$objDateTime = new DateTime();
echo $objDateTime->format('s');//01
ミリ秒vミリ秒654
$objDateTime = new DateTime();
echo $objDateTime->format('v');//000
マイクロ秒uマイクロ秒654321
$objDateTime = new DateTime();
echo $objDateTime->format('u');//000000
全日付cISO8601 フォーマット日付2019-05-15T01:04:54+09:00
rRFC2822 フォーマット日付Wed, 15 May 2019 01:04:54 +0900
$objDateTime = new DateTime();
echo $objDateTime->format('c');//2019-05-15T01:04:54+09:00
echo $objDateTime->format('r');//Wed, 15 May 2019 01:04:54 +0900
タイムゾーンオフセット秒数ZUTC(世界協定時間=グリニッジ天文台が有る場所東経0度の場所を基準にして決められている時間)の西側のタイムゾーン用のオフセット秒数は常に負になります。UTCの東側のオフセット秒数は常に正になります。 日本は32400なので、+9時間です。-43200 ~ 50400
$objDateTime = new DateTime();
echo $objDateTime->format('Z');//32400
UNIX時間からの秒数UUnix Epoch(エポック秒(UNIX時間))=1970年1月1日0時0分0秒からの秒数1557850516
$objDateTime = new DateTime();
echo $objDateTime->format('U');//1557850516

定義済み定数

以下の定数はフォーマットされた日付の文字列です。
<?php
echo DateTime::ATOM;//Y-m-d\TH:i:sP
echo '<br/>';
echo DateTime::COOKIE;//l, d-M-Y H:i:s T
echo '<br/>';
echo DateTime::ISO8601;//Y-m-d\TH:i:sO
echo '<br/>';
echo DateTime::RFC822;//D, d M y H:i:s O
echo '<br/>';
echo DateTime::RFC850;//l, d-M-y H:i:s T
echo '<br/>';
echo DateTime::RFC1036;//D, d M y H:i:s O
echo '<br/>';
echo DateTime::RFC1123;//D, d M Y H:i:s O
echo '<br/>';
echo DateTime::RFC2822;//D, d M Y H:i:s O
echo '<br/>';
echo DateTime::RFC3339;//Y-m-d\TH:i:sP
echo '<br/>';
echo DateTime::RSS;//D, d M Y H:i:s O
echo '<br/>';
echo DateTime::W3C;//Y-m-d\TH:i:sP
echo '<br/>';
?>
結果は
Y-m-d\TH:i:sP
l, d-M-Y H:i:s T
Y-m-d\TH:i:sO
D, d M y H:i:s O
l, d-M-y H:i:s T
D, d M y H:i:s O
D, d M Y H:i:s O
D, d M Y H:i:s O
Y-m-d\TH:i:sP
D, d M Y H:i:s O
Y-m-d\TH:i:sP
となります。


タグ(=記事関連ワード)

日付

投稿日:2019年5月21日
最終更新日:2019年06月04日

関連記事

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

https://wepicks.net/phpsample-date-format/trackback/

page top