PHP 获取某年第几周的开始日期和结束日期的实例

下面小编就为大家分享一篇PHP 获取某年第几周的开始日期和结束日期的实例,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧。

实例如下所示:

  1. /**
  2. * 获取某年第几周的开始日期和结束日期
  3. * @param int $year
  4. * @param int $week 第几周;
  5. */
  6. public function weekday($year,$week=1){
  7. $year_start = mktime(0,0,0,1,1,$year);
  8. $year_end = mktime(0,0,0,12,31,$year);
  9. // 判断第一天是否为第一周的开始
  10. if (intval(date('W',$year_start))===1){
  11. $start = $year_start;//把第一天做为第一周的开始
  12. }else{
  13. $week++;
  14. $start = strtotime('+1 monday',$year_start);//把第一个周一作为开始
  15. }
  16. // 第几周的开始时间
  17. if ($week===1){
  18. $weekday['start'] = $start;
  19. }else{
  20. $weekday['start'] = strtotime('+'.($week-0).' monday',$start);
  21. }
  22. // 第几周的结束时间
  23. $weekday['end'] = strtotime('+1 sunday',$weekday['start']);
  24. if (date('Y',$weekday['end'])!=$year){
  25. $weekday['end'] = $year_end;
  26. }
  27. return $weekday;
  28. }
  29. /**
  30. * 计算一年有多少周,每周从星期一开始,
  31. * 如果最后一天在周四后(包括周四)算完整的一周,否则不计入当年的最后一周
  32. * 如果第一天在周四前(包括周四)算完整的一周,否则不计入当年的第一周
  33. * @param int $year
  34. * return int
  35. */
  36. public function week($year){
  37. $year_start = mktime(0,0,0,1,1,$year);
  38. $year_end = mktime(0,0,0,12,31,$year);
  39. if (intval(date('W',$year_end))===1){
  40. return date('W',strtotime('last week',$year_end));
  41. }else{
  42. return date('W',$year_end);
  43. }
  44. }