Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php自动填充未来几年的下拉列表_Php_Date - Fatal编程技术网

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

如何使用php自动填充未来几年的下拉列表,php,date,Php,Date,我有一个下拉列表,我想填充一个从去年开始到未来5年的日期,但我希望它每年用php自动更新 如果我展示我想要的结果,可能比试图解释更容易 今年的降幅应该是 <select> <option>2012-08-31</option> <option>2013-08-31</option> <option>2014-08-31</option> <option>2015

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

如果我展示我想要的结果,可能比试图解释更容易

今年的降幅应该是

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

2012-08-31
2013-08-31
2014-08-31
2015-08-31
下一个耳朵下拉列表应该是

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

2013-08-31
2014-08-31
2015-08-31
2016-08-31
等等

有人有什么想法吗?

年复一年

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

对于($i=date('Y');$i对于添加年份,您可以使用

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'));
}

对于($i=1;$i您可以创建这样的函数

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;
}
函数getNextYears($fromDate,$nbYears) { $time=strottime($fromDate); $dates=array();
对于($i=0;$i这样的东西可能会对您有所帮助

<?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>';
}

数据库中是否存储了31-08的日期和月份?您应该向我们展示您的尝试,这不是一个“请给我解决方案”的网站。只想知道“-08-31”您是如何到达那里的……这是固定的……还是从数据库……还是什么……谢谢所有的建议,从他们身上学到了一些东西,但这一个成功了。