我需要在30個分鐘爲增量來寫的時間選擇,如:日期選擇用30個分鐘爲增量
<option value="10:00">10:00 am</option>
<option value="10:30">10:30 am</option>
<option value="11:00">11:00 am</option>
<option value="11:30">11:30 am</option>
<option value="12:00">12:00 pm</option>
<option value="12:30">12:30 pm</option>
<option value="13:00">1:00 pm</option>
<option value="13:30">1:30 pm</option>
...
<option value="23:00">11:00 pm</option>
<option value="23:30">11:30 pm</option>
一種方式做到這一點是通過使用密鑰把這個陣列中的全部和環=>值對。不過,我寧願將它作爲一個php循環。
所以,我發現以下有趣的功能:
for($hours=0; $hours<24; $hours++) // the interval for hours is '1'
for($mins=0; $mins<60; $mins+=30) // the interval for mins is '30'
echo '<option>'.str_pad($hours,2,'0',STR_PAD_LEFT).':'
.str_pad($mins,2,'0',STR_PAD_LEFT).'</option>';
這讓我接近。要修改它來滿足我的需求,我改組這樣幾件事情:
echo '<select>';
for($hours=3; $hours<24; $hours++) // the interval for hours is '1'
for($mins=0; $mins<60; $mins+=30) // the interval for mins is '30'
$thrs = str_pad($hours,2,'0',STR_PAD_LEFT);
$tmin = str_pad($mins,2,'0',STR_PAD_LEFT);
$tstr = $thrs.':'.$tmin;
echo '
<option value="'.$tstr.'">
'.$tstr.' '.($thrs > 11 ? 'pm' : 'am').'
</option>';
echo '</select>';
然而,東西壞了,我得到一個值:23:60 PM
我缺少什麼?
呃,糟糕。它現在可以工作,但價值是打印下午15:30,而不是下午3:30 ...我想我並不像我想象的那麼近。 – santa
調整爲不使用軍事時間。 –