是否有一个简单的if语句默认从下拉列表中选择正确的日期?例如,如果日期是02/11/16
,那么它将默认选择
01/28/16
基本上我要求的是if语句,默认选择日期在
<?php
date_default_timezone_set('US/Eastern');
$currenttime = date('d:m:y:h:i:s A');
list($day,$month,$year) = split(':',$currenttime);
$currentdate = "$month/$day/$year";
?>
<form>
<select>
<option>01/14/16</option>
<option>01/28/16</option>
<option>02/14/16</option>
///the list goes on for ages so i saved time and cropped out the rest of the dates.
</select>
</form>
答案 0 :(得分:1)
将所有日期放在数组中,然后遍历它们。然后,您可以测试它们并确定当前日期是否在结算周期内。
$dates = array('16-01-14',
'16-01-28',
'16-02-14',
...);
$currentdate = date('y-m-d');
?>
<form>
<select>
<?php
foreach ($date as $i => $d) {
if ($currentdate >= $d && ($i == count($dates)-1 || $currentdate < $dates[$i+1])) {
$selected = "selected";
} else {
$selected = "";
}
list($year, $month, $day) = explode('-', $d);
echo "<option $selected>$month/$day/$year</option>";
}
?>
</select>
</form>
我将$currentdate
的格式更改为y-m-d
,以便将它们作为字符串进行比较,以查看日期是否在某个范围内。
当它循环遍历日期列表时,它会测试当前日期是否在该日期与数组中的下一个日期之间(或者它是数组中的最后一个日期)。如果是,则会将selected
属性添加到<option>
。