本文实例讲述了PHP获取一年中每个星期的开始和结束日期的方法。分享给大家供大家参考。具体分析如下:
最近项目中需要做个提交周报的功能,需要知道指定周数的开始日期和结束日期,以便处理其他业务。以下是一段通过PHP来获取一年中的每星期的开始日期和结束日期的代码,与大家分享。
以下是一段通过PHP来获取一年中的每星期的开始日期和结束日期的代码。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
function get_week( $year ) { $year_start = $year . "-01-01" ; $year_end = $year . "-12-31" ; $startday = strtotime ( $year_start ); if ( intval ( date ( 'N' , $startday )) != '1' ) { $startday = strtotime ( "nextmonday" , strtotime ( $year_start )); //获取年第一周的日期 } $year_mondy = date ( "Y-m-d" , $startday ); //获取年第一周的日期 $endday = strtotime ( $year_end ); if ( intval ( date ( 'W' , $endday )) == '7' ) { $endday = strtotime ( "lastsunday" , strtotime ( $year_end )); } $num = intval ( date ( 'W' , $endday )); for ( $i = 1; $i <= $num ; $i ++) { $j = $i -1; $start_date = date ( "Y-m-d" , strtotime ( "$year_mondy $j week " )); $end_day = date ( "Y-m-d" , strtotime ( "$start_date +6 day" )); $week_array [ $i ] = array ( str_replace ( "-" , "." , $start_date ), str_replace ( "-" , "." , $end_day )); } return $week_array ; } |
函数get_week()通过传入参数$year年份,获取当年第一天和最后一天所在的周数,计算第一周的日期,通过循环获取每一周的第一天和最后一天的日期。最后返回是一个数组。
想得到指定周数的开始日期和结束日期,比如2011年第18周的开始日期和结束日期,代码如下:
1
2
3
|
$weeks = get_week(2011); echo '第18周开始日期:' . $weeks [18][0]. '' ; echo '第18周结束日期:' . $weeks [18][1]; |
最后输出结果:
1
2
|
1. 第18周开始日期:2011.05.02 2. 第18周结束日期:2011.05.08 |
希望本文所述对大家的php程序设计有所帮助。