如何逆转日期时间php对象的顺序

时间:2015-01-25 23:57:17

标签: php

我使用DatePeriod按月间隔获取两个日期之间的所有月份。 但结果对象是按时间顺序排列的。但是,我需要按时间顺序进行进一步处理。

当前我使用foreach循环来横向移动对象作为推入数组。 然后将arrary_reserve($ var)更改为反向时间顺序。

有没有更好的方法来实现这一目标?

这是我的代码片段

<?php

$out = "
<h3>Archive</h3>
";
$start    = new DateTime('2010-01-01');
$end      = new DateTime('2015-02-01');
$interval = DateInterval::createFromDateString('1 month');
$period   = new DatePeriod($start, $interval, $end);

$a = array();
foreach ($period as $dt) {
array_push($a, $dt);
 }
 $a = array_reverse($a);

foreach ($a as $dt) {
    $d = $dt->format("Y-m-d");
    $nextmonth = date('Y-m-d', strtotime('+1 month', strtotime($d)));
    $count = count($pages->find("template=post, post_date>=$d,     post_date<$nextmonth"));
    if ($count > 0) {
        $out .= "<a href='{$pages->get('template=home')->url}" . date('Y',  strtotime($d)) . "/" . date('m', strtotime($d)) . "'>" . date('M Y', strtotime($d)) . " (" . $count . ")" . "</a><br/>";
    }

}

echo $out;

你可以忽略$ page-&gt; get()。这只是一个cms框架api调用。

1 个答案:

答案 0 :(得分:0)

如何以相反的顺序添加它们

$interval = DateInterval::createFromDateString('1 month');
$interval->invert = 1;

你的间隔现在是负一个月