menu
ホーム > PHPサンプル > 日付系 > PHP 日付を変換する
PHPサンプル

UPDATE:2019年06月10日

PHP 日付を変換する

PHP 日付を変換する | wepicks!
PHP4 PHP5 PHP7

PHP 日付 を変換する

PHP で日付のフォーマットを変換できます。「2020-01-02」という日付を「2020年1月2日」や「Jan. 2, 2020」などのフォーマットに変換するなどです。date()関数 や DateTimeクラス では日付を表すフォーマット(書式)が複数用意されているので、様々なフォーマットで日付を表現できます。
タイムゾーンの指定
php.ini に記述する場合
date.timezone = Asia/Tokyo
スクリプトに記述する場合
<?php date_default_timezone_set ('Asia/Tokyo'); ?>
※日本時間に合わせます。タイムゾーンに誤りがあると日付系の関数やクラスでエラーが起こる場合があります。
使用する関数やクラス

書式 date()
日付文字列 = date(フォーマット [,UNIXタイムスタンプ]);
//[ ]省略可(タイムスタンプがない場合現在日付となる)
//返り値は文字列(string)
date()フォーマット

書式 strtotime()
指定日時のUNIXタイムスタンプ = strtotime(英文形式の日時);
strtotime() 英文形式フォーマット
//返り値は数値(int)、失敗時は FALSE を返す

書式 DateTimeクラス
インスタンス = new DateTime([日時]);
//[ ]は省略可能です。
DateTime() フォーマット

※UNIXタイムスタンプは、1970年1月1日00時00分00秒UTC(協定世界時と一致する標準時)らの経過秒数です。例えば2019年5月15日01時34分25秒のUNIXタイムスタンプは 1557851665 となります。


date() や DateTimeクラス 日付フォーマット簡易表

取得内容フォーマット文字説明
Y1999 や 2020年 4 桁の数字
y99 や 19年 2 桁の数字
L1 か 0閏年かどうか。1なら閏年。0なら閏年ではない
FJanuary~December月 フルスペルの文字
m01~12月 数字。先頭にゼロをつける
MJan~Dec月 3 文字形式
n1~12月 数字。先頭にゼロをつけない
t28~31月 指定した月の日数
d01~31日 2桁の数字(先頭にゼロがつく場合も)
j1~31日 数字。先頭にゼロをつけない
曜日DMon~Sun3文字のテキスト形式
lSunday~Saturdayフルスペル形式
N1~7数字 1(月曜) から 7(日曜)
w0~6数字 0(日曜) から 6(土曜)
W1数字 月曜日に始まる年単位の週番号
g1~1212時間単位。先頭ゼロなし
G0~2324時間単位。先頭ゼロなし
h01~1212時間単位。先頭ゼロあり
H00~2324時間単位。先頭ゼロあり
aam pm午前/午後。小文字表示
AAM PM午前/午後。大文字表示
i00~59先頭ゼロあり
s00~59先頭ゼロあり
全日付c2020-05-15T01:04:54+09:00ISO8601 フォーマット日付
rWed, 15 May 2020 01:04:54 +0900RFC2822 フォーマット日付

date() と strtotime() でフォーマットを変換

strtotime()関数 は日付をタイムスタンプに変換し、date()関数 はタイムスタンプを日付に変換します。これらの関数を組み合わせて、ある日付のフォーマットを別のフォーマットで表現することが出来ます。

「YYYY-MM-DD」→「その他のフォーマットへ」

「2020-01-02」という日付を他のフォーマットに変換します。

「YYYY-MM-DD」→「YYYY年MM月DD日」に変換

結果は

2020年01月02日

となります。

「YYYY-MM-DD」→月や日に0を付けない「YYYY年MM月DD日」に変換

結果は

2020年1月2日

となります。

「YYYY-MM-DD」→「月3文字英語. DD, YYYY」に変換

※アメリカ式フォーマット

結果は

アメリカ式に変換 : Jan. 2, 2020

となります。

「YYYY-MM-DD」→「DD 月3文字英語 YYYY」に変換

※イギリス式フォーマット

結果は

イギリス式に変換 : 2 Jan 2020

となります。

「様々なフォーマット」→「YYYY年MM月DD日」

strtotime()関数は、様々な日付のフォーマットをタイムスタンプに変換することが出来ます。タイムスタンプに変換した後、date()関数でそのタイムスタンプを日付に変換することで、必要なフォーマットに変更することが可能です。

「YYYY-MM-DD」 → 「YYYY年MM月DD日」

結果は

2020年01月02日

となります。

「DD-MM-YYYY」 → 「YYYY年MM月DD日」

結果は

2020年01月02日

となります。

「DD.MM.YYYY」 → 「YYYY年MM月DD日」

結果は

2020年01月02日

となります。

「MM/DD/YY」 → 「YYYY年MM月DD日」

結果は

2020年01月02日

となります。

「YY-MM-DD」 → 「YYYY年MM月DD日」

結果は

2020年01月02日

となります。

「MM/DD/YYYY」 → 「YYYY年MM月DD日」

結果は

2020年01月02日

となります。

「3文字英語月. DD YYYY」 → 「YYYY年MM月DD日」

結果は

2020年01月02日

となります。

「DD 3文字英語月 YYYY」 → 「YYYY年MM月DD日」

結果は

2020年01月02日

となります。

DateTimeクラスで日付のフォーマットを変換

「2020-01-02」 という日付を他のフォーマットに変換します。

「YYYY-MM-DD」→「YYYY年MM月DD日」に変換

結果は

2020年01月02日

となります。

「YYYY-MM-DD」→月や日に0を付けない「YYYY年MM月DD日」に変換

結果は

2020年1月2日

となります。

「YYYY-MM-DD」→「月3文字英語. DD, YYYY」に変換

※アメリカ式フォーマット

結果は

アメリカ式に変換 : Jan. 2, 2020

となります。

「YYYY-MM-DD」→「DD 月3文字英語 YYYY」に変換

※イギリス式フォーマット

結果は

イギリス式に変換 : 2 Jan 2020

となります。

DateTimeクラスで色々なフォーマットを扱う

例では「2020-01-02(YYYY-MM-DD)」を他のフォーマットに変換していますが、strtotime()では、例えば以下の日付フォーマットも扱えます。

「YYYY-MM-DD」 → 「YYYY年MM月DD日」

結果は

2020年01月02日

となります。

「DD-MM-YYYY」 → 「YYYY年MM月DD日」

結果は

2020年01月02日

となります。

「DD.MM.YYYY」 → 「YYYY年MM月DD日」

結果は

2020年01月02日

となります。

「MM/DD/YY」 → 「YYYY年MM月DD日」

結果は

2020年01月02日

となります。

「YY-MM-DD」 → 「YYYY年MM月DD日」

結果は

2020年01月02日

となります。

「MM/DD/YYYY」 → 「YYYY年MM月DD日」

結果は

2020年01月02日

となります。

「3文字英語月. DD YYYY」 → 「YYYY年MM月DD日」

結果は

2020年01月02日

となります。

「DD 3文字英語月 YYYY」 → 「YYYY年MM月DD日」

結果は

2020年01月02日

となります。

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

日付

投稿日:2019年6月8日
最終更新日:2019年06月10日

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

menu-page

この記事へのコメント

トラックバックurl

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

page top