用PHP获取本周第一天和最后一天,网上有很多方法,但是太麻烦,或者有bug,这是用php自带的DateTime类实现的方法,比较简单:
-
- $date=new DateTime();
- $date->modify('this week');
- $first_day_of_week=$date->format('Y-m-d');
- $date->modify('this week +6 days');
- $end_day_of_week=$date->format('Y-m-d');
经过测试modity不知道是用做什么了,于时找了另两个例子,代码如下:
-
-
-
-
-
-
- function this_monday($timestamp=0,$is_return_timestamp=true){
-
- static $cache ;
-
- $id = $timestamp.$is_return_timestamp;
-
- if(!isset($cache[$id])){
-
- if(!$timestamp) $timestamp = time();
-
- $monday_date = date('Y-m-d', $timestamp-86400*date('w',$timestamp)+(date('w',$timestamp)>0?86400:-518400));
-
- if($is_return_timestamp){
-
- $cache[$id] = strtotime($monday_date);
-
- }else{
- $cache[$id] = $monday_date;
- }
- }
- return $cache[$id];
- }
-
-
-
-
-
- function this_sunday($timestamp=0,$is_return_timestamp=true){
-
- static $cache ;
-
- $id = $timestamp.$is_return_timestamp;
-
- if(!isset($cache[$id])){
-
- if(!$timestamp) $timestamp = time();
-
- $sunday = this_monday($timestamp) + 518400;
-
- if($is_return_timestamp){
-
- $cache[$id] = $sunday;
-
- }else{
-
- $cache[$id] = date('Y-m-d',$sunday);
- }
- }
- return $cache[$id];
- }
|