0

我正在尝试创建一个 php 报告,其中数据按月和天分组(然后是每天的时间段 - 但这可能会等待一段时间)。格式类似于:

2013->四月->星期一->数据

2013->四月->星期二->数据

...

2012->十二月->星期一->数据

...

我有以下代码:

 $lastmonth = strtotime ( '-'.$monthrange.' month' , strtotime ("now")) ;
 $arr_months = array();
 $timestampformonths = strtotime("now");
 $arr_daysofweek = array();
 for ($i = 0; $i < $monthrange; $i++) {
   $arr_months[] = strftime('%B', $timestampformonths);
   $timestampformonths = strtotime('-1 month', $timestampformonths);
 }
//tempdump($arr_months);tempstop();//April,March,February...

//build array of days of week backward, starting today
$timestampfordays = strtotime("now");
$arr_daysofweek = array();
for ($i = 0; $i < 7; $i++) {
 $arr_daysofweek[] = strftime('%A', $timestampfordays);
 $timestampfordays = strtotime('-1 day', $timestampfordays);
}

foreach ($arr_daysofweek as $dayoftheweek) {
 foreach ($arr_months as $currmonth) {
    $currmonth_datetime = strtotime($currmonth);
    $prevmonth_datetime = strtotime('-1 month', $currmonth_datetime);
     for($i = strtotime($dayoftheweek, $currmonth_datetime); ( ($i >= $lastmonth) && ($i <= strtotime("now")) && ($currmonth_datetime > $prevmonth_datetime) ); $i = strtotime('-1 week', $i)) {
        echo date('l Y-m-d', $i) . "<br />";//Monday 2012-04-02 00:00:00
    }
}

}

这段代码有一个问题:有重复。例如,输出当前以'Wednesday 2013-04-03'开始,然后通过'Wednesday 2012-04-04'正常显示,然后再次显示'Wednesday 2013-03-06';我认为这是天循环内的月份循环。

请随时完全重做此代码!我什至不介意删除 $arr_daysof 周的 foreach 循环,而是为每天硬编码几个循环——尽管这并不优雅。

谢谢!

* 代码更新:我想我已经解决了重复的问题;如果需要,稍后会发布更多*

4

0 回答 0