public function formateDateByMoon($start, $end) { $return = array(); $st = date("Y-m-d", $start); $et = date("Y-m-d", $end); $firstDateOfStartMonth = date("Y-m", $start) . "-1"; $firstDateOfEndMonth = date("Y-m", $end) . "-1"; $lastDateOfEndMonth = date("Y-m-d", strtotime("+1 month -1 day {$firstDateOfEndMonth}")); $dates = DateTimeUtil::getDiffDate($firstDateOfStartMonth, $lastDateOfEndMonth); $moons = $dates["y"] * 12 + $dates["m"] + 1; if ($moons == 1) { $return[$st . ":" . $et] = $st . "至" . $et; return $return; } for ($i = 0; $i < $moons; $i++) { $sd = date("Y-m", strtotime("+{$i} month {$st}")) . "-1"; $ed = date("Y-m-d", strtotime("+1 month -1 day {$sd}")); if ($i == 0) { $return[$st . ":" . $ed] = $st . "至" . $ed; } elseif ($moons <= $i + 1) { $return[$sd . ":" . $et] = $sd . "至" . $et; } else { $return[$sd . ":" . $ed] = date("Y-m", strtotime("+{$i} month {$st}")); } } return $return; }
public function formateDateByYear($start, $end) { $return = array(); $st = date("Y-m-d", $start); $et = date("Y-m-d", $end); $dates = DateTimeUtil::getDiffDate($st, $et); $years = $dates["y"]; if (0 < $dates["d"] + $dates["m"] * 12) { $years += 1; } for ($i = 0; $i < $years; $i++) { $sd = date("Y-m", strtotime("+{$i} year {$st}")) . "-1"; $ed = date("Y-m-d", strtotime("+1 year -1 day {$sd}")); $return[$sd . ":" . $ed] = date("Y", strtotime("+{$i} year {$st}")) . "年报"; } return $return; }