以下は、時間のリストをレンダリングする FOR ループのコードです。
...etc...
8:45 am
8:50 am
8:55 am
9:00 am
9:05 am
9:10 am
...etc.
これは 5 分間隔で実行されるスクリプトであり、60 で割り切れるため、現在このスクリプトには問題はありません。ただし、その時間間隔を任意の量 (たとえば 9 分) にできるようにする必要があります。 . 私は
次の出力for ($j >= 0; $j <= 55; $j+=5)
を for ($j >= 0; $j <= 59; $j+=9)
望むように変更しようとしました:
...etc...
8:36 am
8:45 am
8:54 am
9:03 am
9:12 am
9:21 am
...etc
次の 1 時間に繰り越して、上記のように継続してほしい...そして、最初の 1 時間が :00 で始まったことに注目してください...そして、次の 1 時間が :03 で始まったことに注目してください。用語、それが私がやろうとしていることです..ただし、59以下になる前の最後の値までしか出力されず、終了します:つまり
...etc...
8:36 am
8:45 am
8:54 am
---AND STOPS HERE---
以上が反響の様子です。
以下は私のコードです:
$day = date("n/j/y");
$startTime = date(strtotime($day." $coursetee_open_time_slashed"));
///needs to be in "16:00" format
$endTime = date(strtotime($day." $coursetee_close_time_slashed"));
///needs to be in "16:00" format
$timeDiff = round(($endTime - $startTime)/60/60);
$startHour = date("G", $startTime);
$endHour = $startHour + $timeDiff;
for ($i=$startHour; $i <= $endHour; $i++)
{
for ($j >= 0; $j <= 55; $j+=5)
{
$time_pre = $i.":".str_pad($j, 2, '0', STR_PAD_LEFT);
$time = ''.$time_pre .' '.$day.'';
/////////////////////////////
$time_formated_for_cosmetic = date("g:i a", strtotime("$time"));
$time_formated_for_mysql = date("Y-m-d H:i:s", strtotime("$time"));
if (isset($tee_times_from_mysql[$time])) {
$time = '';
} else {
$time = '<option value="' . $time_formated_for_mysql . '">'.$time_formated_for_cosmetic .'</option>';
}
echo $time;
}
}