有没有办法使用 PHP 循环根据当前月份(不包括当前月份)创建如下所示的前 12 个月的列表?
该值应始终是每月的第一天(格式:yyyy-mm-dd),下拉列表本身应仅显示年份和月份(格式:yyyy-mm):
<option value="2014-03-01">2014-03</option>
<option value="2014-02-01">2014-02</option>
<option value="2014-01-01">2014-01</option>
<option value="2013-12-01">2013-12</option>
<option value="2013-11-01">2013-11</option>
<option value="2013-10-01">2013-10</option>
//...
我尝试了以下操作,但似乎有问题,因为这不起作用:
<?php for ($i=0; $i<=12; $i++) { ?>
<option value="<?php echo date('Y-m-d', strtotime("-1 month")); ?>"><?php echo date('Y-m', strtotime("-1 month")); ?></option>
<? } ?>
$start = (new DateTime('1 year ago'))->modify('first day of this month');
$end = (new DateTime())->modify('first day of this month');
$interval = new DateInterval('P1M');
$period = new DatePeriod($start, $interval, $end);
$months = array();
foreach ($period as $dt) {
$months[$dt->format('Y-m-d')] = $dt->format('Y-m');
}
$reverse_months = array_reverse($months);
print_r($reverse_months);
Demo http://3v4l.org/Qt1hW
然后您可以循环 $reverse_months 来创建下拉列表
foreach($reverse_months as $key => $value) {
?>
<option value="<?php echo key; ?>"><?php echo value; ?></option>
<?php
}
我们必须使用的原因array_reverse()
DatePeriod 只在时间上向前推进。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)