作为标题,我有一个很长的时间列表,如下所示,我如何使它简短而不是疯狂的列表。
<select id="timesch">
<option>8.00am</option>
<option>8.30am</option>
<option>9.00am</option>
<option>9.30am</option>
<option>10.00am</option>
<option>10.30am</option>
<option>11.00am</option>
<option>11.30am</option>
<option>12.00pm</option>
<option>12.30pm</option>
<option>1.00pm</option>
<option>1.30pm</option>
<option>2.00pm</option>
<option>2.30pm</option>
<option>3.00pm</option>
<option>3.30pm</option>
<option>4.00pm</option>
<option>4.30pm</option>
<option>5.00pm</option>
<option>5.30pm</option>
<option>6.00pm</option>
<option>6.30pm</option>
<option>7.00pm</option>
<option>7.30pm</option>
<option>8.00pm</option>
<option>8.30pm</option>
<option>9.00pm</option>
<option>9.30pm</option>
<option>10.00pm</option>
<option>10.30pm</option>
<option>11.00pm</option>
<option>11.30pm</option>
<option>12.00am</option>
</select>
您可以像这样生成时间列表…
$times = array();
$start = strtotime('8:00am');
$finish = strtotime('12:00am tomorrow');
while($start <= $finish) {
$times[] = date('g.ia', $start);
$start += strtotime('+30 min', 0);
}
var_dump($times);
CodePad .
输出array(33) {
[0]=>
string(6) "8.00am"
[1]=>
string(6) "8.30am"
[2]=>
string(6) "9.00am"
[3]=>
string(6) "9.30am"
[4]=>
string(7) "10.00am"
[5]=>
string(7) "10.30am"
[6]=>
string(7) "11.00am"
[7]=>
string(7) "11.30am"
[8]=>
string(7) "12.00pm"
[9]=>
string(7) "12.30pm"
[10]=>
string(6) "1.00pm"
[11]=>
string(6) "1.30pm"
[12]=>
string(6) "2.00pm"
[13]=>
string(6) "2.30pm"
[14]=>
string(6) "3.00pm"
[15]=>
string(6) "3.30pm"
[16]=>
string(6) "4.00pm"
[17]=>
string(6) "4.30pm"
[18]=>
string(6) "5.00pm"
[19]=>
string(6) "5.30pm"
[20]=>
string(6) "6.00pm"
[21]=>
string(6) "6.30pm"
[22]=>
string(6) "7.00pm"
[23]=>
string(6) "7.30pm"
[24]=>
string(6) "8.00pm"
[25]=>
string(6) "8.30pm"
[26]=>
string(6) "9.00pm"
[27]=>
string(6) "9.30pm"
[28]=>
string(7) "10.00pm"
[29]=>
string(7) "10.30pm"
[30]=>
string(7) "11.00pm"
[31]=>
string(7) "11.30pm"
[32]=>
string(7) "12.00am"
您可以相应地构建您的select
元素。
Smart***, Comment删除换行符<select id="timesch"><option>8.00am</option><option>8.30am</option><option>9.00am</option><option>9.30am</option><option>10.00am</option><option>10.30am</option><option>11.00am</option><option>11.30am</option><option>12.00pm</option><option>12.30pm</option><option>1.00pm</option><option>1.30pm</option><option>2.00pm</option><option>2.30pm</option><option>3.00pm</option><option>3.30pm</option><option>4.00pm</option><option>4.30pm</option><option>5.00pm</option><option>5.30pm</option><option>6.00pm</option><option>6.30pm</option><option>7.00pm</option><option>7.30pm</option><option>8.00pm</option><option>8.30pm</option><option>9.00pm</option><option>9.30pm</option><option>10.00pm</option><option>10.30pm</option><option>11.00pm</option><option>11.30pm</option><option>12.00am</option></select>
虽然我认为你可以使用php循环,将30加到一个变量中,除以60,如果它大于或等于1,减去12,然后加上pm。
下面是一个生成选项列表的php函数(如果你想这么做的话):function GenerateTimeSelect ()
{
echo '<select>';
for ($i=0;$i<60*24;$i=$i+30)
{
$hours = (int)($i/60);
$minutes = (($i%60 == 0)?00:30);
$isPM = false;
//Fix hours, our time system is really weird :/
if ($hours == 0)
$hours = 12;
if ($hours >= 13)
{
$hours -= 12;
$isPM = true;
}
echo '<option>'.$hours.'.'.(($minutes == 0)?'00':$minutes).(($isPM)?'PM':'AM').'</option>';
}
echo '</select>';
}