Laravel
Go
Python
PHP
Vue.js
Java
MySQL
Rust
LK
程序员
Elasticsearch
F2E 前端
Server
Database
DevTools
Computer Science
手机开发
AdonisJS
AI Coding
zhang6688
关注了用户
xuchunyang
两说
关注了话题
laravel写入日志时的执行环境问题?
改进后
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);
}
关于 LearnKu