if(!function_exists('get_weeks')){
/**
* 获取最近七天所有日期
*/
function get_weeks($time = '', $format='Y-m-d'){
$time = $time != '' ? $time : time();
//组合数据
$date = [];
for ($i=1; $i<=7; $i++){
$date[$i] = date($format ,strtotime( '+' . $i-7 .' days', $time));
}
return $date;
}
}
if(!function_exists('get_between_time')){
/**
* 获取起始日期中的所有日期
* @param $start 开始时间 2022-09-22
* @param $end 结束时间 2022-09-29
* @return array
*/
function get_between_time($start, $end)
{
$response = [];
$dt_start = strtotime($start);
$dt_end = strtotime($end);
while ($dt_start <= $dt_end) {
array_push($response, date('Y-m-d', $dt_start));
$dt_start = strtotime('+1 day', $dt_start);
}
return $response;
}
}
if (!function_exists('getStartEndtime')) {
/**
* 获取起始时间戳
* @param string $type 类型 1本年 2本季度 3上月 4本月 5本周 6上周 7下周
* @return string
*/
function getStartEndtime($type='')
{
switch ($type) {
case 1:
//本年开始
$startTime = strtotime(date("Y", time()) . "-1" . "-1");
//本年结束
$overTime = strtotime(date("Y", time()) . "-12" . "-31");
break;
case 2:
//获取当前季度
$season = ceil((date('m')) / 3);
$startTime = mktime(00, 00, 00, $season * 2 + 1, 1, date('Y'));
$overTime = mktime(23, 59, 59, $season * 3, date('t', mktime(0, 0, 0, $season * 3, 1, date("Y"))), date('Y'));
break;
case 3:
//上月
$startTime = mktime(0,0,0,date("m")-1,1,date("Y"));
$overTime = mktime(0,0,0,date("m"),1,date("Y"))-1;
break;
case 4:
//本月
$startTime = mktime(0, 0, 0, date('m'), 1, date('Y'));
$overTime = mktime(23, 59, 59, date('m'), date('t'), date('Y'));
break;
case 5:
//本周
$startTime=mktime(0,0,0,date('m'),date('d')-date('w')+1,date('Y'));
$overTime=mktime(23,59,59,date('m'),date('d')-date('w')+7,date('Y'));
break;
case 6:
//上周
$startTime=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
$overTime=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y')); break;
case 7:
//下周
$startTime=mktime(0,0,0,date('m'),date('d')-date('w')+1+7,date('Y'));
$overTime=mktime(23,59,59,date('m'),date('d')-date('w')+7+7,date('Y'));
break;
default:
//今天
$startTime = mktime(0,0,0,date("m"),date("d"),date("Y"));
$overTime = mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
break;
}
return ['statTime'=>$startTime,'endTime'=>$overTime];
}
}
if (!function_exists('getWeekMyActionAndEnd')) {
/**
* Notes:获取某星期的开始时间和结束时间
* User: guqi
* Date: 2023/3/13
* Time: 14:44
* @param $time 时间
* @param $first 表示每周星期一为开始日期 0表示每周日为开始日期
* @param $retType 1日期格式 2时间戳
* @return string[]
*/
function getWeekMyActionAndEnd($time = '', $first = 1, $retType = '2')
{
//当前日期
if (!$time) $time = time();
$sdefaultDate = date("Y-m-d", $time);
//$first =1 表示每周星期一为开始日期 0表示每周日为开始日期
//获取当前周的第几天 周日是 0 周一到周六是 1 - 6
$w = date('w', strtotime($sdefaultDate));
//获取本周开始日期,如果$w是0,则表示周日,减去 6 天
$week_start = date('Y-m-d', strtotime("$sdefaultDate -" . ($w ? $w - $first : 6) . ' days'));
//本周结束日期
$week_end = date('Y-m-d', strtotime("$week_start +6 days"));
$week_start = $week_start . ' 00:00:00';
$week_end = $week_end . ' 23:59:59';
//返回时间戳
if ($retType == 2) {
$week_start = strtotime($week_start);
$week_end = strtotime($week_end);
}
return array("week_start" => $week_start, "week_end" => $week_end);
}
}
php 获取最近七天所有日期 本年 本月 本季度等 时间戳方法
于 2022-12-01 14:21:03 首次发布