php 年周自定义开始时间计算

/*
* 获取以星期天为一周的开始,计算年周
* liuyinggui
* 2021-05-11
* 接收:年月日
* 返回:周数
* */
function get_sunday_week($date) {
//年份
y e a r = d a t e ( ′ Y ′ , s t r t o t i m e ( year = date('Y',strtotime( year=date(Y,strtotime(date));
//年的第一天
$year_start = $year . “-01-01 00:00:00”;
//年的最后一天
$year_end = $year . “-12-31 23:59:59”;
//转换年第一天为秒
s t a r t d a y = s t r t o t i m e ( startday = strtotime( startday=strtotime(year_start);
//如果第一天不是星期天
if (intval(date(‘N’, $startday)) != ‘7’) {
//以星期天开始,可自定义周开始时间,只需更换:一下星期单词
s t a r t d a y = s t r t o t i m e ( " n e x t S u n d a y " , s t r t o t i m e ( startday = strtotime("next Sunday", strtotime( startday=strtotime("nextSunday",strtotime(year_start)); //获取年第二周的开始日期
}else{
//是否开始日期就是年周的第一周开始日期
$is_first = true;
}
$year_mondy = date(“Y-m-d”, $startday); //获取年第二周的开始日期
//年的最后一天
e n d d a y = s t r t o t i m e ( endday = strtotime( endday=strtotime(year_end);
//如果1月1日,不是年的第一周开始时间,年的最后一天 - 第二周开始时间,反之年的最后一天 - 1月1日
y e a r d a y s = i n t v a l ( c e i l ( ( year_days = intval(ceil(( yeardays=intval(ceil((endday - $startday)/86400));
//最后一周还剩几天
$end_days = $year_days%7;
//一年有几周
w e e k s = f l o o r ( weeks = floor( weeks=floor(year_days/7);
//一年有多少周,周的开始时间与结束时间,键值为周数
w e e k a r r a y = a r r a y ( ) ; / / 如 果 第 一 天 不 是 年 的 第 一 周 开 始 时 间 i f ( ! week_array = array(); //如果第一天不是年的第一周开始时间 if (! weekarray=array();//if(!is_first){
w e e k a r r a y [ 1 ] = a r r a y ( week_array[1] = array( weekarray[1]=array(year_start,date(‘Y-m-d’,strtotime(’-1 day’,$startday)).’ 23:59:59’);
}
//判断年的最后一天是不是周的最后一天
if (intval(date(‘w’, $endday)) != ‘6’) {
//以星期六结束,与上面关联,结束日期为开始日期的前一天
e n d d a y = s t r t o t i m e ( " l a s t S a t u r d a y " , s t r t o t i m e ( endday = strtotime("last Saturday", strtotime( endday=strtotime("lastSaturday",strtotime(year_end));
}else{
KaTeX parse error: Expected 'EOF', got '}' at position 24: … true; }̲ //此循环为…i = 1; $i <= $weeks; $i++) {
$j = $i -1;
//周的开始日期
s t a r t d a t e = d a t e ( " Y − m − d " , s t r t o t i m e ( " start_date = date("Y-m-d", strtotime(" startdate=date("Ymd",strtotime("year_mondy $j week “));
//周的结束日期
e n d d a y = d a t e ( " Y − m − d " , s t r t o t i m e ( " end_day = date("Y-m-d", strtotime(" endday=date("Ymd",strtotime("start_date +6 day”));

        if ($is_first && $i==1){
            $week_array[1] = array ($start_date.' 00:00:00', $end_day.' 23:59:59');
        }else{
            $week_array[] = array ($start_date.' 00:00:00', $end_day.' 23:59:59');
        }
    }
    if (!$is_end){
        $week_array[] = array(date('Y-m-d',strtotime('+1 day',$endday)).' 00:00:00',date('Y-m-d',strtotime("+$end_days day",$endday)).' 23:59:59');
    }
    //判断属于哪一周
    foreach ($week_array as $key => $val){
        if (strtotime($date) >= strtotime($val[0]) && strtotime($date) <= strtotime($val[1])){
            $now_week = $key;
            break;
        }
    }
    return $now_week;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值