PHP实现获取某个月份周次信息的方法

这篇文章主要介绍了PHP实现获取某个月份周次信息的方法,涉及php针对日期与时间的相关计算技巧,具有一定参考借鉴价值,需要的朋友可以参考下。

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

  1. <?php
  2. function getMonthweeks($date){
  3. $ret=array();
  4. $stimestamp=strtotime($date);
  5. $mdays=date('t',$stimestamp);
  6. $msdate=date('Y-m-d',$stimestamp);
  7. $medate=date('Y-m-'.$mdays,$stimestamp);
  8. $etimestamp = strtotime($medate);
  9. //獲取第一周
  10. $zcsy=6-date('w',$stimestamp);//第一周去掉第一天還有幾天
  11. $zcs1=$msdate;
  12. $zce1=date('Y-m-d',strtotime("+$zcsy day",$stimestamp));
  13. $ret[1]="第1周".$zcs1.'~'.$zce1;
  14. //獲取中間周次
  15. $jzc=0;
  16. //獲得當前月份是6周次還是5周次
  17. $jzc0="";
  18. $jzc6="";
  19. for($i=$stimestamp; $i<=$etimestamp; $i+=86400){
  20. if(date('w', $i) == 0){$jzc0++;}
  21. if(date('w', $i) == 6){$jzc6++;}
  22. }
  23. if($jzc0==5 && $jzc6==5)
  24. {
  25. $jzc=5;
  26. }else{
  27. $jzc=4;
  28. }
  29. date_default_timezone_set('PRC');
  30. $t = strtotime('+1 monday '.$msdate);
  31. $n = 1;
  32. for($n=1; $n<$jzc; $n++) {
  33. $b = strtotime("+$n week -1 week", $t);
  34. $dsdate=date("Y-m-d", strtotime("-1 day", $b));
  35. $dedate=date("Y-m-d", strtotime("5 day", $b));
  36. $jzcz=$n+1;
  37. $ret[$jzcz]="第".$jzcz."周".$dsdate.'~'.$dedate;
  38. }
  39. //獲取最後一周
  40. $zcsy=date('w',$etimestamp);//最後一周是周幾日~六 0~6
  41. $zcs1=date('Y-m-d',strtotime("-$zcsy day",$etimestamp));
  42. $zce1=$medate;
  43. $jzcz=$jzc+1;
  44. $ret[$jzcz]="第".$jzcz."周".$zcs1.'~'.$zce1;
  45. return $ret;
  46. }
  47. $ret=getMonthweeks('2012-12-01');
  48. for($i=0; $i<=count($ret); $i++) {
  49. echo @$ret[$i]."<br />";
  50. }
  51. ?>

运行结果如下:

第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程序设计有所帮助。