技術的な備忘録と私的ななにか。

時間の一覧を指定した間隔で作成する

関数概要

フォーム等で時間の一覧を作成する際に、何時から何時まで何分おきに一覧を生成。
間隔の指定方法については、DateInterval::__constructを参照して下さい。

function TimeValues ($id = "", $startHour = "00:00", $endHour = "24:00", $step = 'PT15M') {
  if ($id == "") {
    // $idに指定がなければ、現在の時を選択済みに指定
    $id = date ('H:00');
  }
  // 開始日時と終了日時を指定する
  $d = date('Y-m-d');
  $start = new DateTime($d . ' ' . $startHour);
  $end = new DateTime($d . ' ' . $endHour);

  // ループの間隔をDateIntervalクラスで指定
  // 時間の間隔を指定
  $date_interval = new DateInterval($step);

  // DatePeriodのインスタンス作成
  $date_period = new DatePeriod($start, $date_interval, $end);

  $values = array ();
  $i = 0;
  // ループで回して好きなように加工
  foreach($date_period as $key=>$val) {
    $values[$i]['id'] = $val->format('H:i');
    $values[$i]['value'] = $val->format('H:i');
    if ($values[$i]['id'] === $id) {
      $values[$i]['selected_value'] = " selected";
      $values[$i]['checked_value'] = " checked";
    }
    $i ++;
  }	
  return $values;
}

使用関数及び、参考サイト

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA