我真的努力做到了以下几点:
<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>其中,以下内容是根据今天的日期动态变化的:
<option value="YYYY-m"><? echo $month[12]?> 'yy</option>并在今天之前的12个月内重复这个过程。
我在PHP的基础知识上取得了一些进步,我承认我需要比我更有知识的人的帮助!
它确实看起来很简单,我经常使用stackoverflow来解决问题,尽管这一次我花了太多的时间,但进展太少。
有人能帮我完成这个看似简单的挑战吗?
谢谢!
发布于 2012-03-30 01:37:15
为任何发现问题的人做评论。
公认的答案是错误的。请看这里:
http://www.php.net/manual/en/function.strtotime.php#107331
改用下面的代码:
<?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>';
}
?>解决办法是“第一天”
发布于 2011-11-28 07:14:50
这段代码是概念的证明,它准确地实现了您想要的东西。
for($i=0;$i<=12;$i++)
{
$time = strtotime("today + ". $i." months");
print '<option value="'. date("Y-m", $time) .'">'.date("Y-m",$time).'</option>';
}如果希望以特定语言打印月份名称,则应该查看setlocale,只需使用date中的F参数即可
发布于 2011-11-28 07:16:00
这就是了:
$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);
}
}https://stackoverflow.com/questions/8289856
复制相似问题