【问题标题】:How to get an array of dates (specifically formatted) from today to a certain point in the past?如何获取从今天到过去某个时间点的日期数组(具体格式化)?
【发布时间】:2013-03-30 19:42:16
【问题描述】:
我想得到一个包含如下字符串的数组: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'));
谢谢!
【问题讨论】:
标签:
php
arrays
date
datetime
【解决方案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 [...]
};
?>