未経験からwebクリエーターを目指すブログ

新米webデザイナーが知識整理のために学習内容をまとめていきます。

日付を扱うためのクラス

【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);

 

 

思ってたよりシンプルなのでこれは覚えられそうです。