如何使用php自动填充未来几年的下拉列表

时间:2013-03-21 10:20:26

标签: php date

我有一个下拉列表,我想填充从去年开始的日期,从未来5年开始,但我希望它每年都能用php自动更新。

如果我展示我想要的结果而不是试图解释,可能会更容易。

今年的下拉列表应

<select>
     <option>2012-08-31</option>
     <option>2013-08-31</option>
     <option>2014-08-31</option>
     <option>2015-08-31</option>
</select>

而nextYears下拉应该是

<select>
     <option>2013-08-31</option>
     <option>2014-08-31</option>
     <option>2015-08-31</option>
     <option>2016-08-31</option>
</select>

等等。

有人有任何想法吗?

4 个答案:

答案 0 :(得分:1)

增加岁月?

for($i=date('Y'); $i<date('Y')+5; $i++){
    echo '<option>'.$i.date('-m-d').'</option>';
}

但最好使用mktime

答案 1 :(得分:1)

要添加一年,您可以使用

echo date('Y-m-d H:i:s', strtotime('+1 year'));

添加多年

for($i=1;$i<=5;$i++)
{
echo date('Y-m-d H:i:s', strtotime('+'.$i.' year'));
}

将其与选择框一起使用

<select name="years">
for($i=1;$i<=5;$i++)
    {
    ?>
    <option value="<?php echo date('Y-m-d H:i:s', strtotime('+'.$i.' year')); ?>"><?php echo date('Y-m-d H:i:s', strtotime('+'.$i.' year')); ?></option>
   <?php
    }
    ?>
</select>

答案 2 :(得分:1)

你可以制作这样的功能

function getNextYears($fromDate, $nbYears)
{
    $time = strtotime($fromDate);
    $dates = array();

    for ($i=0; $i<$nbYears; $i++) {
        $dates[] = date('Y-m-d', mktime(0, 0, 0, date('m', $time), date('d', $time), date('Y', $time)+$i));        
    }

    return $dates;
}

答案 3 :(得分:0)

这样的事情可能对你有帮助

<?php

$start_year = date('Y')-1;
$end_year   = $start_year+5;

for($i=$start_year; $i<=$end_year; $i++)
{
   echo '<option>'.$i.date('-m-d').'</option>';
}

&GT;