我为用户创建了一个表格来申请课程。每个单独的记录将被添加到表格提交表格中,但我不知道如何在日期的选择框中自动生成选项。理想情况下,我希望选择框在当前日期的2天内生成10天的日期。
例如,今天是23日,第一个选项将于2013-05-25过时。接下来的九天将增加九个选项。
<select name="day1">
<option value="2013-05-25">Sat, 25th May 2013</option>
<option value="2013-05-26">Sun, 26th May 2013</option>
</select>
我想知道如何在选择框中快速生成这些选项?
答案 0 :(得分:2)
这样的事情应该成功(未经测试):
// Create the dates array
$dates = array();
// Loop through 9 times (9 days)
for($i=0;$i<9;$i++){
// Set the timestamp
// This starts in 2 days
$timestamp = strtotime('+ '.(2+$i).' days');
// Set the date value
$date = date('Y-m-d',$timestamp);
// Set the formatted date value
$date_formatted = date('D, js F Y',$timestamp);
// Place the date into the $dates array
$dates[$date] = $date_formatted;
}
然后循环遍历$dates
数组,如下所示:
echo "<select name=\"day1\">";
foreach($dates as $key=>$value){
echo "<option value=\"$key\">$value</option>";
}
echo "</select>";
此外,如果您想创建其中几个选择框,请将它们放在for循环中,如下所示:
// This will create 5 select boxes
for($i=0;$i<5;$i++){
echo "<select name=\"day$i\">";
foreach($dates as $key=>$value){
echo "<option value=\"$key\">$value</option>";
}
echo "</select>";
}
为了理解上面发生的事情,你需要了解三件事如何运作:
答案 1 :(得分:0)
从两天开始的接下来的10天:
echo "<select name='date'>";
for($i=3;$i<=12;$i++){
echo "<option>".date("Y-m-d",strtotime("+$i days"))."</option>";
}
echo "</select>";