Home >Backend Development >PHP Tutorial >PHP Get the start date and end date of each week of the year_PHP Tutorial
The following is a code that uses PHP to get the start date and end date of each week of the year.
<ol class="dp-c"> <li class="alt"><span><span class="keyword">function</span><span> get_week(</span><span class="vars">$year</span><span>) { </span></span></li> <li> <span> </span><span class="vars">$year_start</span><span> = </span><span class="vars">$year</span><span> . </span><span class="string">"-01-01"</span><span>; </span> </li> <li class="alt"> <span> </span><span class="vars">$year_end</span><span> = </span><span class="vars">$year</span><span> . </span><span class="string">"-12-31"</span><span>; </span> </li> <li> <span> </span><span class="vars">$startday</span><span> = </span><span class="func">strtotime</span><span>(</span><span class="vars">$year_start</span><span>); </span> </li> <li class="alt"> <span> </span><span class="keyword">if</span><span> (</span><span class="func">intval</span><span>(</span><span class="func">date</span><span>(</span><span class="string">'N'</span><span>, </span><span class="vars">$startday</span><span>)) != </span><span class="string">'1'</span><span>) { </span> </li> <li> <span> </span><span class="vars">$startday</span><span> = </span><span class="func">strtotime</span><span>(</span><span class="string">"next monday"</span><span>, </span><span class="func">strtotime</span><span>(</span><span class="vars">$year_start</span><span>)); </span><span class="comment">//获取年第一周的日期 </span><span> </span> </li> <li class="alt"><span> } </span></li> <li> <span> </span><span class="vars">$year_mondy</span><span> = </span><span class="func">date</span><span>(</span><span class="string">"Y-m-d"</span><span>, </span><span class="vars">$startday</span><span>); </span><span class="comment">//获取年第一周的日期 </span><span> </span> </li> <li class="alt"><span> </span></li> <li> <span> </span><span class="vars">$endday</span><span> = </span><span class="func">strtotime</span><span>(</span><span class="vars">$year_end</span><span>); </span> </li> <li class="alt"> <span> </span><span class="keyword">if</span><span> (</span><span class="func">intval</span><span>(</span><span class="func">date</span><span>(</span><span class="string">'W'</span><span>, </span><span class="vars">$endday</span><span>)) == </span><span class="string">'7'</span><span>) { </span> </li> <li> <span> </span><span class="vars">$endday</span><span> = </span><span class="func">strtotime</span><span>(</span><span class="string">"last sunday"</span><span>, </span><span class="func">strtotime</span><span>(</span><span class="vars">$year_end</span><span>)); </span> </li> <li class="alt"><span> } </span></li> <li><span> </span></li> <li class="alt"> <span> </span><span class="vars">$num</span><span> = </span><span class="func">intval</span><span>(</span><span class="func">date</span><span>(</span><span class="string">'W'</span><span>, </span><span class="vars">$endday</span><span>)); </span> </li> <li> <span> </span><span class="keyword">for</span><span> (</span><span class="vars">$i</span><span> = 1; </span><span class="vars">$i</span><span> <= </span><span class="vars">$num</span><span>; </span><span class="vars">$i</span><span>++) { </span> </li> <li class="alt"> <span> </span><span class="vars">$j</span><span> = </span><span class="vars">$i</span><span> -1; </span> </li> <li> <span> </span><span class="vars">$start_date</span><span> = </span><span class="func">date</span><span>(</span><span class="string">"Y-m-d"</span><span>, </span><span class="func">strtotime</span><span>(</span><span class="string">"$year_mondy $j week "</span><span>)); </span> </li> <li class="alt"><span> </span></li> <li> <span> </span><span class="vars">$end_day</span><span> = </span><span class="func">date</span><span>(</span><span class="string">"Y-m-d"</span><span>, </span><span class="func">strtotime</span><span>(</span><span class="string">"$start_date +6 day"</span><span>)); </span> </li> <li class="alt"><span> </span></li> <li> <span> </span><span class="vars">$week_array</span><span>[</span><span class="vars">$i</span><span>] = </span><span class="keyword">array</span><span> ( </span> </li> <li class="alt"> <span> </span><span class="func">str_replace</span><span>(</span><span class="string">"-"</span><span>, </span> </li> <li> <span> </span><span class="string">"."</span><span>, </span> </li> <li class="alt"> <span> </span><span class="vars">$start_date</span><span> </span> </li> <li> <span> ), </span><span class="func">str_replace</span><span>(</span><span class="string">"-"</span><span>, </span><span class="string">"."</span><span>, </span><span class="vars">$end_day</span><span>)); </span> </li> <li class="alt"><span> } </span></li> <li> <span> </span><span class="keyword">return</span><span> </span><span class="vars">$week_array</span><span>; </span> </li> <li class="alt"><span>} </span></li> </ol>
The function get_week() gets the week number of the first and last day of the year by passing in the parameter $year, calculates the date of the first week, and obtains the first day of each week through a loop and last day date. The final return is an array.
If you want to get the start date and end date of a specified week, such as the start date and end date of the 18th week of 2011, the code is as follows:
<ol class="dp-c"> <li class="alt"><span><span class="vars">$weeks</span><span> = get_week(2011); </span></span></li> <li> <span class="func">echo</span><span> </span><span class="string">'第18周开始日期:'</span><span>.</span><span class="vars">$weeks</span><span>[18][0].</span><span class="string">''</span><span>; </span> </li> <li class="alt"> <span class="func">echo</span><span> </span><span class="string">'第18周结束日期:'</span><span>.</span><span class="vars">$weeks</span><span>[18][1]; </span> </li> </ol>
The final output result:
<ol class="dp-c"> <li class="alt"><span><span>第18周开始日期:2011.05.02 </span></span></li> <li><span>第18周结束日期:2011.05.08 </span></li> </ol>
http://www.helloweba.com/view-blog-125.html