PHP实现获取某个月份周次信息的方法
author:一佰互联 2019-04-27   click:157

本文实例讲述了PHP实现获取某个月份周次信息的方法。分享给大家供大家参考。具体如下:

<?php function getMonthweeks($date){ $ret=array();  $stimestamp=strtotime($date);  $mdays=date("t",$stimestamp);  $msdate=date("Y-m-d",$stimestamp);  $medate=date("Y-m-".$mdays,$stimestamp); $etimestamp = strtotime($medate); //獲取第一周 $zcsy=6-date("w",$stimestamp);//第一周去掉第一天還有幾天 $zcs1=$msdate; $zce1=date("Y-m-d",strtotime("+$zcsy day",$stimestamp)); $ret[1]="第1周".$zcs1."~".$zce1; //獲取中間周次 $jzc=0; //獲得當前月份是6周次還是5周次 $jzc0=""; $jzc6=""; for($i=$stimestamp; $i<=$etimestamp; $i+=86400){ if(date("w", $i) == 0){$jzc0++;} if(date("w", $i) == 6){$jzc6++;} } if($jzc0==5 && $jzc6==5) { $jzc=5; }else{ $jzc=4; } date_default_timezone_set("PRC"); $t = strtotime("+1 monday ".$msdate); $n = 1; for($n=1; $n<$jzc; $n++) { $b = strtotime("+$n week -1 week", $t); $dsdate=date("Y-m-d", strtotime("-1 day", $b)); $dedate=date("Y-m-d", strtotime("5 day", $b)); $jzcz=$n+1; $ret[$jzcz]="第".$jzcz."周".$dsdate."~".$dedate; } //獲取最後一周 $zcsy=date("w",$etimestamp);//最後一周是周幾日~六 0~6 $zcs1=date("Y-m-d",strtotime("-$zcsy day",$etimestamp)); $zce1=$medate; $jzcz=$jzc+1; $ret[$jzcz]="第".$jzcz."周".$zcs1."~".$zce1; return $ret;}$ret=getMonthweeks("2012-12-01");for($i=0; $i<=count($ret); $i++) { echo @$ret[$i]."<br />";}?>

运行结果如下:

第1周2012-12-01~2012-12-01第2周2012-12-02~2012-12-08第3周2012-12-09~2012-12-15第4周2012-12-16~2012-12-22第5周2012-12-23~2012-12-29第6周2012-12-30~2012-12-31

希望本文所述对大家的php程序设计有所帮助。