注册于:3年前 ,最后活跃于:2个月前
个人签名:身在无间,心在桃源
Ta 的动态:
改进后
function get_period_timestamp($start_time, $period_type = 'daily')
{
switch ($period_type) {
case "daily":
//所选时间的昨天起始
$before_begin = date("Y-m-d 00:00:00", strtotime("-1 day", $start_time));
$before_end = date("y-m-d 23:59:59", strtotime($before_begin));
//所选时间的一天起始
$begin = strtotime(date("Y-m-d", $start_time));
$end = strtotime(date("Y-m-d 23:59:59", $start_time));
break;
case "weekly":
//上周一
if (date("w") == 1) {
$before_begin = date("Y-m-d", strtotime("last monday", $start_time)); //无论今天几号,-1 monday为上一个有效周
} else {
$before_begin = date("Y-m-d", strtotime("-1 week last monday", $start_time)); //无论今天几号,-1 monday为上一个有效周
}
//上周日
$before_end = date("Y-m-d 23:59:59", strtotime("-1 sunday", $start_time)); //上一个有效周日,同样适用于其它星期
//本周一
// $begin = date("Y-m-d", ($start_time - ((date("w") == 0 ? 7 : date("w")) - 1) 24 3600)); //w为星期几的数字形式,这里0为周日
$begin = date("Y-m-d", strtotime("this week Monday", $start_time));
$end = date("Y-m-d", strtotime('+1week', $begin)) - 1;
break;
case "month":
//上月一日
$before_begin = date("Y-m-d",strtotime("first day of -1 month",$start_time));
//上月最后一日
$before_end = date("Y-m-d 23:59:59",strtotime("last day of -1 month",$start_time));
//所选时间的月起始
$begin = date("Y-m-d", strtotime(date("Y-m", $start_time) . "-01 00:00:00")); //直接以strtotime生成
$begin = date("Y-m-d", strtotime(date("Y-m-01", $start_time)));
$end = date("Y-m-d", strtotime('+1month', $begin)) - 1;
break;
case "year":
//去年一月一日
$before_begin = date("Y-m-d", strtotime("-1 year", strtotime(date("Y", $start_time) . '-01-01 00:00:00'))); //本月一日直接strtotime上减一个月
//去年十二月三十一日
$before_end = date("Y-m-d 23:59:59", strtotime(date("Y", $start_time) ."-01-01 00:00:00") - 1); //本月一日减一天即是上月最后一日
//所选时间的年起始
$begin = date("Y-m-d", strtotime(date("Y-01-01", $start_time)));
$end = date("Y-m-d", strtotime('+1year', $begin)) - 1;
break;
default:
return build_result('类型错误 :daily,weekly,month,year');
}
$result = [
"before_begin" => $before_begin,
"before_end" => $before_end,
"begin" => $begin,
"end" => $end
];
return build_result('查询成功', 0, $result);
}