以十五分钟为增量编码值的最简单方法是什么?换句话说,而不是执行以下操作:
<select>
<option value="">12:00 AM</option>
<option value="">12:15 AM</option>
<option value="">12:30 AM</option>
<option value="">12:45 AM</option>
... so on
我如何使用PHP占用更少的空间?
谢谢!
答案 0 :(得分:2)
使用php中的各种时间函数:
$number = 10;
echo '<select>';
for(i = 0; i < $number; ++$i) {
echo '<option value="">', date('h:i A', mktime(12, 15*$i)), '</option>';
}
echo '</select>';
答案 1 :(得分:1)
也许是这样的:
for($hour = 12; $hour < 14; $hour++) {
for ($minute = 0; $minute <= 60; $minute += 15) {
echo '<option value="">' . (($hour > 12) ? $hour : $hour - 12) . ':' . str_pad($minute, 2, '0', STR_PAD_LEFT) . (($hour < 12) ? 'AM' : 'PM') '</option>';
}
}
答案 2 :(得分:1)
使用mktime()http://us2.php.net/manual/en/function.mktime.php
for ($x = 0; $x < 10; $x++) {
print "<option value=''>" . mktime(0, $x * 15) . "</option>";
}
显然你的mktime参数会有所不同。
答案 3 :(得分:1)
另一种可读的可能性。
$dt = new DateTime('12:00 AM');
for ($i = 0; $i < 24 * 4; $i++) {
echo '<option value="">', $dt->format('H:i A'), '</option>';
$dt->modify('+15 minutes');
}
答案 4 :(得分:0)
这应该可以解决问题。
// Start at midnight
$time = strtotime('12:00 AM');
// End one day later
$endTime = $time + strtotime('+1 day') - time();
// Print out every 15 minutes
$timeDelta = strtotime('+15 minutes') - time();
while ($time < $endTime) {
printf('<option value="">%s</option>%s', date('h:i A', $time), "\n");
$time += $timeDelta;
}