-5

09:00 と 20:00 のように、訪問の開始時間と終了時間を入力するための予約スクリプトを準備しています。各訪問時間は 45 分です。

ループ内で開始時刻から終了時刻まで 45 分を追加したい。しかし、インターネット上のサンプルでは、​​私はそれを行うことができませんでした.

訪問時間は動的です。つまり、09:00-20:00 または 11:00-23:00 などです。

私がやろうとしている正確な解決策は次のとおりです。

$visit_start = '09:00';
$visit_end   = '20:00';
$difference  =  $visit_end - $visit_start;
$i = 1;
while( $i <= $difference )
{
    print $visit_hour_list = $visit_start + 45;
    $i++;
}    

印刷は次のようになります。

09:00
09:45
10:30
11:15
12:00

終了時間まで。しかし、それがどのように機能するかはわかりません。

4

1 に答える 1

12

同様の質問ですでに回答されているように、「PHPで日付の範囲を取得するにはどうすればよいですか?」の場合、PHP のクラスを使用してDatePeriod、開始時刻と終了時刻の間を 45 分ごとに繰り返すことができます。

デモ:

<?php
/**
 * PHP add 45 Minutes to a Time with Loop
 *
 * @link https://stackoverflow.com/a/19399907/367456
 */

$begin = new DateTime("09:00");
$end   = new DateTime("20:00");

$interval = DateInterval::createFromDateString('45 min');

$times    = new DatePeriod($begin, $interval, $end);

foreach ($times as $time) {
    echo $time->format('H:i'), '-', 
         $time->add($interval)->format('H:i'), "\n"
         ;
}

出力:

09:00-09:45
09:45-10:30
10:30-11:15
11:15-12:00
12:00-12:45
12:45-13:30
13:30-14:15
14:15-15:00
15:00-15:45
15:45-16:30
16:30-17:15
17:15-18:00
18:00-18:45
18:45-19:30
19:30-20:15
于 2013-10-16T09:37:22.727 に答える