/* * 切分时间段函数 * beginTime->开始时间时间戳 * endTime->结束时间时间戳 * type->[1]按年分;[2]按月分;[3]按天分 * 返回二维数组 * arr[]['beginTime']->开始时间 * arr[]['endTime']->结束时间 * arr[]['date']->相应date * */ if (!function_exists('sliceTime')) { function sliceTime($beginTime, $endTime, $type) { $arr = array(); $sub = 0; $beginY = date('Y', $beginTime); $beginM = date('m', $beginTime); $beginD = date('d', $beginTime); $endY = date('Y', $endTime); $endM = date('m', $endTime); $endD = date('d', $endTime); $duringY = $endY - $beginY; $duringM = 12 - $beginM + $endM + ($duringY - 1) * 12; $arr[$sub]['beginTime'] = $beginTime; switch ($type) { case '1': { for ($n = 0; $n < $duringY; $n++) { $arr[$sub]['endTime'] = mktime(23, 59, 59, 12, 31, $beginY++); $arr[$sub]['date'] = date('Y', $arr[$sub]['endTime']); $sub++; $arr[$sub]['beginTime'] = mktime(0, 0, 0, 1, 1, $beginY); } $arr[$sub]['endTime'] = $endTime; $arr[$sub]['date'] = date('Y', $arr[$sub]['endTime']); break; } case '2': { $beginYY = $beginY; for ($a = 0; $a < $duringM; $a++) { $m = $a + $beginM; $numM = date('t', strtotime($beginY . '-' . (($m % 12) ? ($m % 12) : 12) . '-1')); $arr[$sub]['endTime'] = mktime(23, 59, 59, $m, $numM, $beginYY); $arr[$sub]['date'] = date('Y-m', $arr[$sub]['endTime']); $m += 1; $sub++; $arr[$sub]['beginTime'] = strtotime($beginY . '-' . (($m % 12) ? ($m % 12) : 12)); if ((($m % 12) == 0) && ($m / 12) >= 1) { $beginY++; } } $arr[$sub]['endTime'] = $endTime; $arr[$sub]['date'] = date('Y-m', $arr[$sub]['endTime']); break; } case '3': { for ($bY = $beginY; $bY <= $endY; $bY++) { $bM = 1; $eM = 12; if ($bY == $beginY) { $bM = $beginM; } if ($bY == $endY) { $eM = $endM; } for ($mm = $bM; $mm <= $eM; $mm++) { $bD = 1; $eD = date('t', strtotime($bY . '-' . (($mm % 12) ? ($mm % 12) : 12) . '-1')); if ($bY == $beginY && $mm == $beginM) { $bD = $beginD; } if ($bY == $endY && $mm == $endM) { $eD = $endD; } for ($dd = $bD; $dd <= $eD;) { if ($bY == $endY && $mm == $endM && $dd == $eD) { break; } $arr[$sub]['endTime'] = mktime(23, 59, 59, (($mm % 12) ? ($mm % 12) : 12), $dd, $bY); $arr[$sub]['date'] = date('Y-m-d', $arr[$sub]['endTime']); $sub++; $dd++; $arr[$sub]['beginTime'] = mktime(0, 0, 0, (($mm % 12) ? ($mm % 12) : 12), $dd, $bY); } } } $arr[$sub]['endTime'] = $endTime; $arr[$sub]['date'] = date('Y-m-d', $arr[$sub]['endTime']); break; } } return $arr; } }