php实现周和月起止时间计算方法

来源:互联网 发布:开票软件异常000013 编辑:程序博客网 时间:2024/06/01 10:39

php实现周和月起止时间计算方法


当前周的起止时间计算

public function getWeekend(){        $date=date("Y-m-d");  //当前日期        $first=1; //$first =1 表示每周星期一为开始日期 0表示每周日为开始日期        $w=date('w',strtotime($date));  //获取当前周的第几天 周日是0周一到周六是1-6        $now_start=date('Y-m-d',strtotime("$date -".($w==0 ? 6 : $w - $first).' days')); //获取本周开始日期,如果$w是0,则表示周日,减去6天        $now_end=date('Y-m-d',strtotime("$now_start +6 days"));  //本周结束日期        $week[]=array($now_start,$now_end);        return $week;    }

weekends演示

当前月的起止时间计算

    public function getMonth(){        $date = date("Y-m-d");        $start_date = date('Y-m-d', mktime(00, 00, 00, date('m', strtotime($date)), 01));        $end_date = date('Y-m-d', mktime(23, 59, 59, date('m', strtotime($date))+1, 00));        $month[]=array($start_date,$end_date);        return $month;    }

months运行结果

当前周往后的指定周数的起止时间

public function getWeekends(){    header('Content-type: text/html; charset=utf-8');    $date=date("Y-m-d");  //当前日期    $first=1; //$first =1 表示每周星期一为开始日期 0表示每周日为开始日期    $w=date('w',strtotime($date));  //获取当前周的第几天 周日是0周一到周六是1-6     $now_start=date('Y-m-d',strtotime("$date -".($w==0 ? 6 : $w - $first).' days')); //获取本周开始日期,如果$w是0,则表示周日,减去6天    $now_end=date('Y-m-d',strtotime("$now_start +6 days"));  //本周结束日期    $weekEndCnt=1;    $weekStCnt=7;    echo '第0开始日期:'.$now_start.'<br />';    echo '第0结束日期:'.$now_end.'<br />';    echo "<br />";    for($i=1;$i<10;$i++){    $last_start=date('Y-m-d',strtotime("$now_end + ".$weekEndCnt." days"));//开始日期    $last_end=date('Y-m-d',strtotime("$now_end + ".$weekStCnt." days")); //结束日期        echo '第'.$i.'开始日期:'.$last_start.'<br />';    echo '第'.$i.'结束日期:',$last_end,'<br />';    $weekStCnt+=7;    $weekEndCnt+=7;    echo "<br />";    }}

这里写图片描述

指定月的每周的起止日期

public function getWeekendsByMonths(){   $current_year="2017";//指定日期的年份   $current_month="12";//指定日期的月份  //该月第一天  $firstday = strtotime($current_year.'-'.$current_month.'-01');  //该月的第一周有几天  $firstweekday = (7 - date('N',$firstday) +1);  //计算该月第一个周一的时间  $starttime = $firstday-3600*24*(7-$firstweekday);  //该月的最后一天  $lastday = strtotime($current_year.'-'.$current_month.'-01'." +1 month -1 day");  //该月的最后一周有几天  $lastweekday = date('N',$lastday);  //该月的最后一个周末的时间  $endtime = $lastday-3600*24*($lastweekday%7);  $step = 3600*24*7;//步长值  $week_arr = array();  for ($i=$starttime; $i<$endtime; $i= $i+3600*24*7){    $week_arr[] = array('Start'=>date('Y-m-d',$i),"End"=>date('Y-m-d',$i+3600*24*6));  }  var_dump($week_arr); }

这里写图片描述

原创粉丝点击