PHP多选项

时间:2009-08-13 20:41:24

标签: php date time

以十五分钟为增量编码值的最简单方法是什么?换句话说,而不是执行以下操作:

<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占用更少的空间?

谢谢!

5 个答案:

答案 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;
}