不正な日時入力か調べる
1 2 3 4 |
if(empty($date_str) || !is_string($date_str) || !strtotime($date_str)){ echo("不正な日時フォーマット"); } |
日時フォーマットをそろえる
1 2 3 4 5 6 7 8 |
//Datetimeでmodifyするときなど $date = New DateTime($date_str); $collect_date_str = $date->format("Y-m-d H:i:s"); //unix_time $unix_time = strtotime($date_str); $collect_date_str = date("Y-m-d H:i:s", $unix_time); |
日時を比較する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
//DateTime Classはそのままで比較できる $date_a = New DateTime($date_str_a); $date_b = New DateTime($date_str_b); if($date_str_a == $date_str_b){ echo("同一時刻"); } elseif($date_a > $date_b){ echo("aがbより未来"); } else{ echo("bがaより未来"); } //unix timeで比較 $unix_time_a = strtotime($date_str_a); $unix_time_b = strtotime($date_str_b); if($unix_time_a == $unix_time_b){ echo("同一時刻"); } elseif($unix_time_a > $unix_time_b){ echo("aがbより未来"); } else{ echo("bがaより未来"); } |
DateTime Classはオブジェクトなので再利用が想定されるときはCloneする
1 2 3 4 5 6 7 8 |
$current_date = New DateTime(); $tommorow = Clone $current_date; $tommorow->modify("+1 days"); $yesterda = Clone $current_date; $tommorow->modify("-1days"); |