PHP Çoklu Seçenekleri

5 Cevap php

Onbeş dakikalık artışlarla değerleri kodlamak için en kolay yolu nedir? : Yerine aşağıdaki yapmanın diğer bir deyişle,

<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

Nasıl daha az yer kaplar için PHP kullanabilirsiniz?

Teşekkürler!

5 Cevap

mktime kullanın () http://us2.php.net/manual/en/function.mktime.php

for ($x = 0; $x < 10; $x++) {
 print "<option value=''>" . mktime(0, $x * 15) . "</option>";

}

Açıkçası mktime için params değişecektir.

Çeşitli zaman işlevini kullanmak php vardır:

$number = 10;

echo '<select>';
for(i = 0; i < $number; ++$i) {
  echo '<option value="">', date('h:i A', mktime(12, 15*$i)), '</option>';
}
echo '</select>';

Bu gibi Belki bir şey:

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>';
    }
}

Başka, iyi okunabilir olasılık.

$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');
}

Bu hile yapmak gerekir.

// 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;
}