如何从今天到过去的某个点获取一系列日期(特别是格式化)?

时间:2013-03-30 19:42:16

标签: php arrays date datetime

我想得到一个包含如下字符串的数组:2013-03,2013-02,2013-01,2012-12,2012-11 ......等。

我该怎么办?我尝试使用循环和DateInterval类,但令人惊讶的是30.March -1month给了我们2.March,所以这不是很有用。

$date = new DateTime();
$date->sub(DateInterval::createFromDateString('1 month'));

谢谢!

1 个答案:

答案 0 :(得分:1)

奇怪的是,PHP使用“下个月”关键字返回上个月的日期:S

您可以执行以下操作:

<?php
$date = new DateTime();
// Subtract one month at a time
// until we reach 2009.
while ($date->format('Y') > 2009) {
    $date->sub(DateInterval::createFromDateString('next month'));
    var_dump($date->format('Y-m')); // Will print 2013-03 2013-02 [...]
};
?>