日付を扱うためのクラス
【DateTime】クラス
第1引数…特定の日時、または 'now'
第2引数…タイムゾーンを指定するオブジェクト
例)$date = new DateTime('2001-01-01 20:00:00', new DateTimeZone('Asia/Tokyo'));
※時刻を出力 … format() メソッドで文字列に変換してから表示する。
例)$date = new DateTime();
echo $date->format('Y-m-d H:i:s');
・「add()」メソッド
DateTimeの日時($date)にDateIntervalで指定した期間($Interval)を追加して出力できる。
例)$date->add($Interval);
$date->format();
・「sub()」メソッド
add() メソッドの逆。指定した期間を引く。
・「diff()」メソッド
別のDateTimeオブジェクトとの差を期間(DateIntervalオブジェクト)にして出力する。
【DateInterval】クラス
因数…'P1M'などの書式で期間を指定する
例)$two_days = new DateInterval('P2D');
$two_weeks = new DateInterval('P2W');
・「createFromDateString」インスタンス
因数…'2 weeks'などの書式で期間を指定する
例)$two_days = new DateInterval::createFromDateString('2 days');
※時刻を出力 … format() メソッドで文字列に変換してから表示する。
DateTime() とは異なり、フォーマット文字の前に「%」をつけなくてはいけないので注意。
例)$interval = new DateInterval('P1D');
echo $date->format('%D日間'); // 1日間
【DatePeriod】クラス
第1引数…開始日時(DateTimeオブジェクト)
第2引数…期間(DateIntervalオブジェクト)
第3引数…終了日時(DateTimeオブジェクト)※この日は期間から除外される
第4引数…EXCLUDE_START_DATE を指定すると開始日時も期間から除外する。
例)$period = new DatePeriod($day1, $interval, $day2,EXCLUDE_START_DATE);
思ってたよりシンプルなのでこれは覚えられそうです。