如何在php中以15分钟的增量自动递增以下内容?
<option value="9:00am" <?= ($item['starttime']) == '9:00am' ? 'selected' : '' ?>>9:00am</option>
php输出应该如下所示:
<option value="9:00am" <?= ($item['starttime']) == '9:00am' ? 'selected' : '' ?>>9:00am</option>
<option value="9:15am" <?= ($item['starttime']) == '9:15am' ? 'selected' : '' ?>>9:15am</option>
<option value="9:30am" <?= ($item['starttime']) == '9:30am' ? 'selected' : '' ?>>9:30am</option>
etc, etc
以下是您想要的:
<?php
for ($i = 0; $i <= 23; $i++)
{
$postfix = "am";
$k = $i;
if ($i >= 12)
{
$postfix = "pm";
}
if ($i > 12) $k = $i - 12;
for ($j = 0; $j <= 45; $j+= 15)
{
$time = $k . ':' . str_pad($j, 2, '0', STR_PAD_LEFT) . $postfix;
$selected = "";
if ($item['starttime'] == $time) $selected = "selected";
echo '<option value="' . $time . '" ' . $selected . '>' . $time . '</option>';
}
}
?>
另一种方法是:
// start time
$open_time = strtotime("9:00:00");
// end time
$close_time = strtotime("23:59:00");
// selected time
$item['starttime'] = '09:30:00am';
// increment by seconds 15 mins = 900secs
for( $i=$open_time; $i<$close_time; $i+=900) {
$time = date("H:i:sa",$i);
echo "<option value='$time'" .(($item['starttime'] == $time) ? ' selected' : '') .">$time</option>";
}
有关日期格式,请参阅以下链接http://php.net/manual/en/function.date.php
这是一种方法:
<select>
<?php
$t = "09:00:00"; // START TIME.
$item['starttime'] = "10:45:00"; // SELECTED TIME.
for ( $i = 0; $i < 10; $i++ ) // DISPLAY 10 ITEMS.
{ $endTime = strtotime("+15 minutes", strtotime($t) ); // ADD 15 MINUTES.
$t = date('h:i:s', $endTime); // CONVERT TIME TO STRING.
echo "<option value='$t' " .
(($item['starttime'] == $t) ? 'selected' : '') .
">$t</option>'n";
}
?>
</select>