Php 日期foreach数组

Php 日期foreach数组,php,Php,为什么这不起作用,它假设从当前日期所属的阵列日期中选择。因此,例如,如果日期是16-01-30,则选择的日期将是16-02-14谢谢您的帮助 <? $date = array('16-01-14','16-01-28','16-02-14','16-02-28'); $currentdate = date('y-m-d'); echo $currentdate; ?> <form> <select>

为什么这不起作用,它假设从当前日期所属的阵列日期中选择。因此,例如,如果日期是
16-01-30
,则选择的日期将是
16-02-14
谢谢您的帮助

    <?
    $date = array('16-01-14','16-01-28','16-02-14','16-02-28');
    $currentdate = date('y-m-d');
    echo $currentdate;
    ?>
    <form>
    <select>
    <?php
    foreach ($date as $i => $d) {
        if ($currentdate >= $d && ($i == count($date)-1 || $currentdate < $date[$i+1])) {
            $selected = "selected";
        } else {
            $selected = "";
        }
        list($year, $month, $day) = explode('-', $d);
        echo "<option $selected>$month/$day/$year</option>";
    }
    ?>
    </select>
    </form>

这是你的答案

$dates = array('16-01-14','16-01-28','16-02-14','16-02-28');
    $currentdate = date('y-m-d');
    echo $currentdate;
    ?>
    <form>
    <select>
    <?php
    foreach ($dates 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>";
    }
$dates=数组('16-01-14','16-01-28','16-02-14','16-02-28');
$currentdate=日期('y-m-d');
echo$currentdate;
?>

您需要使用strotime来比较日期。或者对变量使用DateTime类,如果当前日期为16-02-25,则选择16-02-28??或者只是一个打字错误$date还是$dates?@devpro如果当前日期是16-02-25,而选择的日期是16-02-2,那么你是什么意思?@LewisTyler:如果当前日期是16-02-12,那么你需要从数组中选择最后一个最晚的日期?我说的对吗?您使用的是
$date
而不是
$dates