Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
75.00% |
3 / 4 |
CRAP | |
90.91% |
20 / 22 |
| Date | |
0.00% |
0 / 1 |
|
75.00% |
3 / 4 |
11.09 | |
90.91% |
20 / 22 |
| isDateString | |
100.00% |
1 / 1 |
4 | |
100.00% |
7 / 7 |
|||
| isDateTimeString | |
100.00% |
1 / 1 |
4 | |
100.00% |
7 / 7 |
|||
| getAge | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| getAgeByString | |
0.00% |
0 / 1 |
2.15 | |
66.67% |
4 / 6 |
|||
| <?php | |
| namespace Puyo\Util; | |
| /** | |
| * 日付関連ユーティリティ | |
| * @version 1.0.0 | |
| */ | |
| class Date | |
| { | |
| /** | |
| * 日付文字列として有効か否かを返す (YYYY-mm-dd) | |
| * @param string $str | |
| * @return bool | |
| */ | |
| public static function isDateString($str) { | |
| if(1 !== preg_match('/\A\d{4}-\d{2}-\d{2}\z/u', $str)) { | |
| return false; | |
| } | |
| if(false === ($intTime = strtotime($str))) { | |
| return false; | |
| } | |
| if($str !== date('Y-m-d', $intTime)) { | |
| return false; | |
| } | |
| return true; | |
| } | |
| /** | |
| * 日付時刻文字列として有効ない中を返す (YYYY-mm-dd HH:ii:ss) | |
| * @param string $str | |
| * @return bool | |
| */ | |
| public static function isDateTimeString($str) { | |
| if(1 !== preg_match('/\A\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\z/u', $str)) { | |
| return false; | |
| } | |
| if(false === ($intTime = strtotime($str))) { | |
| return false; | |
| } | |
| if($str !== date('Y-m-d H:i:s', $intTime)) { | |
| return false; | |
| } | |
| return true; | |
| } | |
| /** | |
| * 誕生日から年齢を返す | |
| * @param \DateTime $dtBirthday | |
| * @param \DateTime|null $dtToday (optional) | |
| * @return int 年齢 | |
| */ | |
| public static function getAge(\DateTime $dtBirthday, \DateTime $dtToday=null) { | |
| $result = $dtToday->diff($dtBirthday)->y; | |
| return $result; | |
| } | |
| /** | |
| * 誕生日から年齢を返す | |
| * @param string $strBirthday | |
| * @param string|null $strToday (optional) | |
| * @return int 年齢 | |
| */ | |
| public static function getAgeByString($strBirthday, $strToday) { | |
| $dtBirthday = new \DateTime($strBirthday); | |
| if($strToday === null) { | |
| $strToday = (new \DateTime())->format('Y-m-d'); | |
| } | |
| $dtToday = new \DateTime($strToday); | |
| return static::getAge($dtBirthday, $dtToday); | |
| } | |
| } |