PHP 獲取某年第幾周的開始日期和結束日期的實例


/** 

 * 獲取某年第幾周的開始日期和結束日期 

 * @param int $year 

 * @param int $week 第幾周; 

 */

 public function weekday($year,$week=1){ 

  $year_start = mktime(0,0,0,1,1,$year); 

  $year_end = mktime(0,0,0,12,31,$year); 

  // 判斷第一天是否為第一周的開始 

  if (intval(date('W',$year_start))===1){ 

   $start = $year_start;//把第一天做為第一周的開始 

  }else{ 

   $week++; 

   $start = strtotime('+1 monday',$year_start);//把第一個周一作為開始 

  } 

  // 第幾周的開始時間 

  if ($week===1){ 

   $weekday['start'] = $start; 

  }else{ 

   $weekday['start'] = strtotime('+'.($week-0).' monday',$start); 

  } 

  // 第幾周的結束時間 

  $weekday['end'] = strtotime('+1 sunday',$weekday['start']); 

  if (date('Y',$weekday['end'])!=$year){ 

   $weekday['end'] = $year_end; 

  } 

  return $weekday; 

 } 

 /** 

 * 計算一年有多少周,每周從星期一開始, 

 * 如果最后一天在周四后(包括周四)算完整的一周,否則不計入當年的最后一周 

 * 如果第一天在周四前(包括周四)算完整的一周,否則不計入當年的第一周 

 * @param int $year 

 * return int 

 */

 public function week($year){ 

  $year_start = mktime(0,0,0,1,1,$year); 

  $year_end = mktime(0,0,0,12,31,$year); 

  if (intval(date('W',$year_end))===1){ 

   return date('W',strtotime('last week',$year_end)); 

  }else{ 

   return date('W',$year_end); 

  } 

 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM