最近接了一个项目,其中有一需求是用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获取一年有几周以及每周开始日期和结束日期,有所帮助。