@fzbing
2015-06-10T00:41:18.000000Z
字数 1227
阅读 1173
php
function timeto($time, $case = 1)
{
$Y = date('Y', $time);
$m = date('m', $time);
$d = date('d', $time);
$z = date('z', $time);
$z++;
switch ($case) {
case 1: // 天
$last_start = mktime(0, 0, 0, 1, $z - 1, $Y);
$cur_start = mktime(0, 0, 0, 1, $z, $Y);
$next_start = mktime(0, 0, 0, 1, $z + 1, $Y);
break;
case 2: // 周
$N = date('N', $time);
$z = $z - $N + 1;
$last_start = mktime(0, 0, 0, 1, $z - 7, $Y);
$cur_start = mktime(0, 0, 0, 1, $z, $Y);
$next_start = mktime(0, 0, 0, 1, $z + 7, $Y);
break;
case 3:
$j = date('j', $time); // 当前月份第几天
$cur_month_days = date('t', $time);
$last_month_days = date('t', mktime(0, 0, 0, $m - 1, $d, $Y));
$z = $z - $j + 1;
$last_start = mktime(0, 0, 0, 1, $z - $last_month_days, $Y);
$cur_start = mktime(0, 0, 0, 1, $z, $Y);
$next_start = mktime(0, 0, 0, 1, $z + $cur_month_days, $Y);
break;
case 4:
$j = date('j', $time); // 当前月份第几天
$cur_months_days = date('t', $time)
+ date('t', mktime(0, 0, 0, $m + 1, $d, $Y))
+ date('t', mktime(0, 0, 0, $m + 2, $d, $Y));
$last_months_days = date('t', mktime(0, 0, 0, $m - 3, $d, $Y))
+ date('t', mktime(0, 0, 0, $m - 2, $d, $Y))
+ date('t', mktime(0, 0, 0, $m - 1, $d, $Y));
$z = $z - $j + 1; // 当前月第一天
$last_start = mktime(0, 0, 0, 1, $z - $last_months_days, $Y);
$cur_start = mktime(0, 0, 0, 1, $z, $Y);
$next_start = mktime(0, 0, 0, 1, $z + $cur_months_days, $Y);
break;
default:
return false;
}
return [
'cur' => [
'start' => $cur_start,
'end' => $next_start - 1
],
'last' => [
'start' => $last_start,
'end' => $cur_start - 1
],
];
}