PHP > Tips > PHPで日付整形
2019年6月12日公開(2020年5月12日更新)
やりたいこと †
日付のデータを整形する。
正しい日付 †
2019-06-12
4桁の年、2桁の月、2桁の日が「-」(ハイフン、マイナス記号)で連結されている形にしたい。
不完全な日付 †
2019
4桁の年だけ。月と日が欠落している。
2019-06
4桁の年と2桁の月だけ。日が欠落している。
自作関数 †
不完全な日付データを正しい日付データの形に整える関数を自作してみよう。
欠落している月や日は、とりあえず1月や1日にしておく。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
|
実行例(PHP Version 7.2.13) †
2019-06-12 -> 2019-06-12
2019-06 -> 2019-06-01
2019 -> 2019-01-01
1234-56-78 -> 1238-10-17
2000-01-32 -> 2000-02-01
2000-13-01 -> 2001-01-01
9999-9999-9999 -> 10859-07-16
(空白) -> 0001-01-01
0 -> 0001-01-01
1 -> 0001-01-01
2 -> 0002-01-01
1901 -> 1901-01-01
1902 -> 1902-01-01
1755 -> 1755-01-01
1755-09 -> 1755-09-01
1755-09-28 -> 1755-09-28
1902 -> 1902-01-01
4-5-6 -> 0004-05-06
a-b-c -> 0001-01-01
参考 †
- PHP: DateTime - Manual https://www.php.net/manual/ja/class.datetime.php
- PHPで日付や時刻をフォーマットする(1月1日、1/1など) https://www.flatflag.nir87.com/date-473#strtotime-3
- DateTime クラスのまとめメモ - Qiita https://qiita.com/re-24/items/c3ed814f2e1ee0f8e811
自作関数 その2 †
UTCや年月日などの表記にも対応できるように少し改良。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
|
参考 †
- 【PHP】DateTimeクラスでcheckdate()より汎用性のある日付チェックを行う - Qiita https://qiita.com/ma_me/items/dc2bdd37ca364498ac4e
- PHP: checkdate - Manual https://www.php.net/manual/ja/function.checkdate.php#113205
日時の形式を検証する関数
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
これは便利ですね。