最近接了一个项目,其中有一需求是用php获取一年有几周以及每周开始日期和接触日期。在网上找些资料没有合适的,于是自己做了一份,下面通过两种方式实现PHP获取一年有几周以及每周开始日期和结束日期
代码一:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<?php header( "Content-type:text/html;charset=utf-8" ); date_default_timezone_set( "Asia/Shanghai" ); $year = (int) $_GET [ 'year' ]; $week = (int) $_GET [ 'week' ]; $weeks = date ( "W" , mktime (0, 0, 0, 12, 28, $year )); echo $year . '年一共有' . $weeks . '周<br />' ; if ( $week > $weeks || $week <= 0) { $week = 1; } if ( $week < 10) { $week = '0' . $week ; } $timestamp [ 'start' ] = strtotime ( $year . 'W' . $week ); $timestamp [ 'end' ] = strtotime ( '+1 week -1 day' , $timestamp [ 'start' ]); echo $year . '年第' . $week . '周开始时间戳:' . $timestamp [ 'start' ] . '<br />' ; echo $year . '年第' . $week . '周结束时间戳:' . $timestamp [ 'end' ] . '<br />' ; echo $year . '年第' . $week . '周开始日期:' . date ( "Y-m-d" , $timestamp [ 'start' ]) . '<br />' ; echo $year . '年第' . $week . '周结束日期:' . date ( "Y-m-d" , $timestamp [ 'end' ]); ?> |
代码二:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<?php header( "Content-type:text/html;charset=utf-8" ); function getIsoWeeksInYear( $year ) { $date = new DateTime; $date ->setISODate( $year , 53); return ( $date ->format( "W" ) === "53" ? 53 : 52); } function weekday( $custom_date ) { $week_start = date ( 'd-m-Y' , strtotime ( 'this week monday' , $custom_date )); $week_end = date ( 'd-m-Y' , strtotime ( 'this week sunday' , $custom_date )); $week_array [0] = $week_start ; $week_array [1] = $week_end ; return $week_array ; } echo '<br> Weeks in 2013<br>' . getIsoWeeksInYear(2013); $weekday = weekday( strtotime ( date ( 'd-m-Y' , strtotime ( '5-8-2013' )))); echo '<br> 10-8-2013' ; echo '<br>Start: ' . $weekday [0]; echo '<br>End: ' . $weekday [1]; ?> |
以上本文的全部内容,希望对大家学习PHP获取一年有几周以及每周开始日期和结束日期,有所帮助。