我一直在努力实现以下目标:
<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来解决问题,虽然在这种情况下我花了太多时间并且进展太少。
任何人都可以帮我看看这个看似简单的挑战吗?
谢谢!!!
答案 0 :(得分:2)
评论任何发现问题的人。
接受的答案是错误的。见这里:
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>';
}
?>
修复是“第一天”
答案 1 :(得分:1)
此代码段是完全符合您要求的概念证明。
for($i=0;$i<=12;$i++)
{
$time = strtotime("today + ". $i." months");
print '<option value="'. date("Y-m", $time) .'">'.date("Y-m",$time).'</option>';
}
答案 2 :(得分:0)
你走了:
$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);
}
}