我想输出过去13个月,从上个月开始。
我的代码:
for($i=1;$i<=(13);$i++)
{
echo date("m",strtotime("-".$i." month"));
}
它很有效,但今天(31.)它看起来像这样 07 07 05 05 03 03 01 12 12 10 10 08 07
我错过了几个月,没有31天。我该如何解决这个问题?
答案 0 :(得分:0)
使用DateTime对象! ; - )
$date = new DateTime('2017-08-31');
for ($i=1; $i<=(13); $i++) {
$tmpDate = clone $date;
$tmpDate->modify('last day of -' . $i . ' month');
echo $tmpDate->format('Y-m-d') . "\n";
}
诀窍是复制变量,以便减少var $ i的月份次数。使用&#34; -x month的最后一天&#34;总是选择那个月的最后一天。 参考:https://secure.php.net/manual/en/class.datetime.php