从日期范围

时间:2016-02-12 04:27:17

标签: php

是否有一个简单的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>

1 个答案:

答案 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>