UPDATE:2019年06月10日
PHP 日付を変換する
PHP 日付 を変換する
php.ini に記述する場合
書式 date()
日付文字列 = date(フォーマット [,UNIXタイムスタンプ]);
//[ ]省略可(タイムスタンプがない場合現在日付となる)
//返り値は文字列(string)
date()フォーマット
書式 strtotime()
指定日時のUNIXタイムスタンプ = strtotime(英文形式の日時);
strtotime() 英文形式フォーマット
//返り値は数値(int)、失敗時は FALSE を返す
書式 DateTimeクラス
インスタンス = new DateTime([日時]);
//[ ]は省略可能です。
DateTime() フォーマット
date() や DateTimeクラス 日付フォーマット簡易表
取得内容 | フォーマット文字 | 例 | 説明 |
---|---|---|---|
年 | Y | 1999 や 2020 | 年 4 桁の数字 |
y | 99 や 19 | 年 2 桁の数字 | |
L | 1 か 0 | 閏年かどうか。1なら閏年。0なら閏年ではない | |
月 | F | January~December | 月 フルスペルの文字 |
m | 01~12 | 月 数字。先頭にゼロをつける | |
M | Jan~Dec | 月 3 文字形式 | |
n | 1~12 | 月 数字。先頭にゼロをつけない | |
t | 28~31 | 月 指定した月の日数 | |
日 | d | 01~31 | 日 2桁の数字(先頭にゼロがつく場合も) |
j | 1~31 | 日 数字。先頭にゼロをつけない | |
曜日 | D | Mon~Sun | 3文字のテキスト形式 |
l | Sunday~Saturday | フルスペル形式 | |
N | 1~7 | 数字 1(月曜) から 7(日曜) | |
w | 0~6 | 数字 0(日曜) から 6(土曜) | |
W | 1 | 数字 月曜日に始まる年単位の週番号 | |
時 | g | 1~12 | 12時間単位。先頭ゼロなし |
G | 0~23 | 24時間単位。先頭ゼロなし | |
h | 01~12 | 12時間単位。先頭ゼロあり | |
H | 00~23 | 24時間単位。先頭ゼロあり | |
a | am pm | 午前/午後。小文字表示 | |
A | AM PM | 午前/午後。大文字表示 | |
分 | i | 00~59 | 先頭ゼロあり |
秒 | s | 00~59 | 先頭ゼロあり |
全日付 | c | 2020-05-15T01:04:54+09:00 | ISO8601 フォーマット日付 |
r | Wed, 15 May 2020 01:04:54 +0900 | RFC2822 フォーマット日付 |
date() と strtotime() でフォーマットを変換
strtotime()関数 は日付をタイムスタンプに変換し、date()関数 はタイムスタンプを日付に変換します。これらの関数を組み合わせて、ある日付のフォーマットを別のフォーマットで表現することが出来ます。
「YYYY-MM-DD」→「その他のフォーマットへ」
「YYYY-MM-DD」→「YYYY年MM月DD日」に変換
1 | echo date("Y年m月d日" ,strtotime("2020-01-02")); |
結果は
となります。
「YYYY-MM-DD」→月や日に0を付けない「YYYY年MM月DD日」に変換
1 | echo date("Y年n月j日" ,strtotime("2020-01-02")); |
結果は
となります。
「YYYY-MM-DD」→「月3文字英語. DD, YYYY」に変換
※アメリカ式フォーマット
1 | echo "アメリカ式に変換 : ".date("M. j, Y" ,strtotime("2020-01-02")); |
結果は
となります。
「YYYY-MM-DD」→「DD 月3文字英語 YYYY」に変換
※イギリス式フォーマット
1 | echo "イギリス式に変換 : ".date("j M Y" ,strtotime("2020-01-02")); |
結果は
となります。
「様々なフォーマット」→「YYYY年MM月DD日」
strtotime()関数は、様々な日付のフォーマットをタイムスタンプに変換することが出来ます。タイムスタンプに変換した後、date()関数でそのタイムスタンプを日付に変換することで、必要なフォーマットに変更することが可能です。
「YYYY-MM-DD」 → 「YYYY年MM月DD日」
1 2 3 | <?php echo date('Y年m月d日' ,strtotime("2020-01-02")); ?> |
結果は
となります。
「DD-MM-YYYY」 → 「YYYY年MM月DD日」
1 2 3 | <?php echo date('Y年m月d日' ,strtotime("02-01-2020")); ?> |
結果は
となります。
「DD.MM.YYYY」 → 「YYYY年MM月DD日」
1 2 3 | <?php echo date('Y年m月d日' ,strtotime("02.01.2020")); ?> |
結果は
となります。
「MM/DD/YY」 → 「YYYY年MM月DD日」
1 2 3 | <?php echo date('Y年m月d日' ,strtotime("01/02/20")); ?> |
結果は
となります。
「YY-MM-DD」 → 「YYYY年MM月DD日」
1 2 3 | <?php echo date('Y年m月d日' ,strtotime("20-01-02")); ?> |
結果は
となります。
「MM/DD/YYYY」 → 「YYYY年MM月DD日」
1 2 3 | <?php echo date('Y年m月d日' ,strtotime("01/02/2020")); ?> |
結果は
となります。
「3文字英語月. DD YYYY」 → 「YYYY年MM月DD日」
1 2 3 | <?php echo date('Y年m月d日' ,strtotime("Jun. 02, 2020")); ?> |
結果は
となります。
「DD 3文字英語月 YYYY」 → 「YYYY年MM月DD日」
1 2 3 | <?php echo date('Y年m月d日' ,strtotime("02 Jun 2020")); ?> |
結果は
となります。
DateTimeクラスで日付のフォーマットを変換
「YYYY-MM-DD」→「YYYY年MM月DD日」に変換
1 2 | $objDateTime = new DateTime('2020-01-02'); echo $objDateTime->format('Y年m月d日')."<br>\n"; |
結果は
となります。
「YYYY-MM-DD」→月や日に0を付けない「YYYY年MM月DD日」に変換
1 2 | $objDateTime = new DateTime('2020-01-02'); echo $objDateTime->format('Y年n月j日')."<br>\n"; |
結果は
となります。
「YYYY-MM-DD」→「月3文字英語. DD, YYYY」に変換
※アメリカ式フォーマット
1 2 | $objDateTime = new DateTime('2020-01-02'); echo 'アメリカ式に変換 : '.$objDateTime->format('M. j, Y')."<br>\n"; |
結果は
となります。
「YYYY-MM-DD」→「DD 月3文字英語 YYYY」に変換
※イギリス式フォーマット
1 2 | $objDateTime = new DateTime('2020-01-02'); echo 'イギリス式に変換 : '.$objDateTime->format('j M Y')."<br>\n"; |
結果は
となります。
DateTimeクラスで色々なフォーマットを扱う
例では「2020-01-02(YYYY-MM-DD)」を他のフォーマットに変換していますが、strtotime()では、例えば以下の日付フォーマットも扱えます。
「YYYY-MM-DD」 → 「YYYY年MM月DD日」
1 2 3 4 | <?php $objDateTime = new DateTime('2020-01-02'); echo $objDateTime->format('Y年m月d日')."<br>\n"; ?> |
結果は
となります。
「DD-MM-YYYY」 → 「YYYY年MM月DD日」
1 2 3 4 | <?php $objDateTime = new DateTime('02-01-2020'); echo $objDateTime->format('Y年m月d日')."<br>\n"; ?> |
結果は
となります。
「DD.MM.YYYY」 → 「YYYY年MM月DD日」
1 2 3 4 | <?php $objDateTime = new DateTime('02.01.2020'); echo $objDateTime->format('Y年m月d日')."<br>\n"; ?> |
結果は
となります。
「MM/DD/YY」 → 「YYYY年MM月DD日」
1 2 3 4 | <?php $objDateTime = new DateTime('01/02/20'); echo $objDateTime->format('Y年m月d日')."<br>\n"; ?> |
結果は
となります。
「YY-MM-DD」 → 「YYYY年MM月DD日」
1 2 3 4 | <?php $objDateTime = new DateTime('20-01-02'); echo $objDateTime->format('Y年m月d日')."<br>\n"; ?> |
結果は
となります。
「MM/DD/YYYY」 → 「YYYY年MM月DD日」
1 2 3 4 | <?php $objDateTime = new DateTime('01/02/2020'); echo $objDateTime->format('Y年m月d日')."<br>\n"; ?> |
結果は
となります。
「3文字英語月. DD YYYY」 → 「YYYY年MM月DD日」
1 2 3 4 | <?php $objDateTime = new DateTime('Jan. 02, 2020'); echo $objDateTime->format('Y年m月d日')."<br>\n"; ?> |
結果は
となります。
「DD 3文字英語月 YYYY」 → 「YYYY年MM月DD日」
1 2 3 4 | <?php $objDateTime = new DateTime('02 Jan 2020'); echo $objDateTime->format('Y年m月d日')."<br>\n"; ?> |
結果は
となります。
タグ(=記事関連ワード)
日付
最終更新日:2019年06月10日