Php 未来12个月的动态日期选项

Php 未来12个月的动态日期选项,php,forms,date,datepicker,dynamic-data,Php,Forms,Date,Datepicker,Dynamic Data,我一直在努力实现以下目标: <option value="2011-11"><? echo $month[11]?> '11</option> <option value="2011-12"><? echo $month[12]?> '11</option> <option value="2012-1"><? echo $month[1]?> '12</option> <option

我一直在努力实现以下目标:

<option value="2011-11"><? echo $month[11]?> '11</option>
<option value="2011-12"><? echo $month[12]?> '11</option>
<option value="2012-1"><? echo $month[1]?> '12</option>
<option value="2012-2"><? echo $month[2]?> '12</option>
'11
'11
'12
'12
其中,根据今天的日期,以下各项是动态的:

<option value="YYYY-m"><? echo $month[12]?> 'yy</option>
'yy
并在今天之前的12个月内重复这一过程

我在PHP的基础知识方面取得了一些进步,我承认我需要比我更有知识的人的帮助

它看起来很简单,我经常用stackoverflow来解决问题,虽然在这个场合我花了太多的时间,取得了太少的进展

谁能帮我解决这个看似简单的挑战


谢谢你

这段代码是概念证明,可以实现您想要的目标

for($i=0;$i<=12;$i++)
{
    $time = strtotime("today + ". $i." months");

    print '<option value="'. date("Y-m", $time)  .'">'.date("Y-m",$time).'</option>';
}
for($i=0;$i给你:

$time = time();

foreach (range(0, 12) as $i)
{
    echo '<option value="' . date('Y-m', $time) . '">' . $month[date('m', $time)] . date('y', $time) . '</option>' . "\n";

    if ($i >= 1)
    {
        $time = strtotime('next month', $time);
    }
}
$time=time();
foreach(范围(0,12)为$i)
{
回显'.$month[日期('m',$time)]。日期('y',$time)。''.\n;
如果($i>=1)
{
$time=strottime(下个月,$time);
}
}

为任何发现问题的人发表评论

公认的答案是错误的。请参见此处:

改用这个:

<?php
for($i=0;$i<=12;$i++)
{
    $time = strtotime("first day of +". $i." months");
    print '<option value="'. date("Y-m", $time)  .'">'.date("Y-m",$time).'</option>';
}
?>

你可以使用
mktime
而不是
strotime
来提高效率和预测其结果。这种方法考虑了年份的变化,这对mktime来说更具挑战性。谢谢Jan!!!我可以感觉到这是多么容易,学习PHP是一件很有挑战性的事情,尽管当事情顺利进行时,它很酷!最后,setlocale命令d不起作用,所以我只是使用了一个带有西班牙语月份名称的数组,然后像那样打印出来!再次感谢你真的帮助了我!!指出“的第一天”做得很好。我已经每天使用PHP超过10年了,strotime()因为它的强大性和灵活性而非常频繁。这是我第一次看到它被使用。