<?php 
$week = date( "w "); // 今天是星期几,0=星期天 
echo date( "周一是:Y年m月d日 ",strtotime( "- ".($week-1). " day ")). " <br> "; 
echo date( "周日是:Y年m月d日 ",strtotime(7-$week. " day ")). " <br> "; 
echo date( "下周一是:Y年m月d日 ",strtotime( "week ",strtotime( "- ".($week-1). " day "))). " <br> "; 
echo date( "下周日是:Y年m月d日 ",strtotime( "week ",strtotime(7-$week. " day "))). " <br> "; 
echo date( "上周一是:Y年m月d日 ",strtotime( "-1 week ",strtotime( "- ".($week-1). " day "))). " <br> "; 
echo date( "上周日是:Y年m月d日 ",strtotime( "-1 week ",strtotime(7-$week. " day "))). " <br> "; 

?>

 

 

  1. //这个星期的星期一   

  2. // @$timestamp ,某个星期的某一个时间戳,默认为当前时间   

  3. // @is_return_timestamp ,是否返回时间戳,否则返回时间格式   

  4. function this_monday($timestamp=0,$is_return_timestamp=true){  

  5.     static $cache ;  

  6.     $id = $timestamp.$is_return_timestamp;  

  7.     if(!isset($cache[$id])){  

  8.         if(!$timestamp$timestamp = time();  

  9.         $monday_date = date('Y-m-d'$timestamp-86400*date('w',$timestamp)+(date('w',$timestamp)>0?86400:-/*6*86400*/518400));  

  10.         if($is_return_timestamp){  

  11.             $cache[$id] = strtotime($monday_date);  

  12.         }else{  

  13.             $cache[$id] = $monday_date;  

  14.         }  

  15.     }  

  16.     return $cache[$id];  

  17.   

  18. }  

  19.   

  20. //这个星期的星期天   

  21. // @$timestamp ,某个星期的某一个时间戳,默认为当前时间   

  22. // @is_return_timestamp ,是否返回时间戳,否则返回时间格式   

  23. function this_sunday($timestamp=0,$is_return_timestamp=true){  

  24.     static $cache ;  

  25.     $id = $timestamp.$is_return_timestamp;  

  26.     if(!isset($cache[$id])){  

  27.         if(!$timestamp$timestamp = time();  

  28.         $sunday = this_monday($timestamp) + /*6*86400*/518400;  

  29.         if($is_return_timestamp){  

  30.             $cache[$id] = $sunday;  

  31.         }else{  

  32.             $cache[$id] = date('Y-m-d',$sunday);  

  33.         }  

  34.     }  

  35.     return $cache[$id];  

  36. }  

  37.   

  38. //上周一   

  39. // @$timestamp ,某个星期的某一个时间戳,默认为当前时间   

  40. // @is_return_timestamp ,是否返回时间戳,否则返回时间格式   

  41. function last_monday($timestamp=0,$is_return_timestamp=true){  

  42.     static $cache ;  

  43.     $id = $timestamp.$is_return_timestamp;  

  44.     if(!isset($cache[$id])){  

  45.         if(!$timestamp$timestamp = time();  

  46.         $thismonday = this_monday($timestamp) - /*7*86400*/604800;  

  47.         if($is_return_timestamp){  

  48.             $cache[$id] = $thismonday;  

  49.         }else{  

  50.             $cache[$id] = date('Y-m-d',$thismonday);  

  51.         }  

  52.     }  

  53.     return $cache[$id];  

  54. }  

  55.   

  56. //上个星期天   

  57. // @$timestamp ,某个星期的某一个时间戳,默认为当前时间   

  58. // @is_return_timestamp ,是否返回时间戳,否则返回时间格式   

  59. function last_sunday($timestamp=0,$is_return_timestamp=true){  

  60.     static $cache ;  

  61.     $id = $timestamp.$is_return_timestamp;  

  62.     if(!isset($cache[$id])){  

  63.         if(!$timestamp$timestamp = time();  

  64.         $thissunday = this_sunday($timestamp) - /*7*86400*/604800;  

  65.         if($is_return_timestamp){  

  66.             $cache[$id] = $thissunday;  

  67.         }else{  

  68.             $cache[$id] = date('Y-m-d',$thissunday);  

  69.         }  

  70.     }  

  71.     return $cache[$id];  

  72.   

  73. }  

  74.   

  75. //这个月的第一天   

  76. // @$timestamp ,某个月的某一个时间戳,默认为当前时间   

  77. // @is_return_timestamp ,是否返回时间戳,否则返回时间格式   

  78.   

  79. function month_firstday($timestamp = 0, $is_return_timestamp=true){  

  80.     static $cache ;  

  81.     $id = $timestamp.$is_return_timestamp;  

  82.     if(!isset($cache[$id])){  

  83.         if(!$timestamp$timestamp = time();  

  84.         $firstday = date('Y-m-d'mktime(0,0,0,date('m',$timestamp),1,date('Y',$timestamp)));  

  85.         if($is_return_timestamp){  

  86.             $cache[$id] = strtotime($firstday);  

  87.         }else{  

  88.             $cache[$id] = $firstday;  

  89.         }  

  90.     }  

  91.     return $cache[$id];  

  92. }  

  93.   

  94. //这个月的第一天   

  95. // @$timestamp ,某个月的某一个时间戳,默认为当前时间   

  96. // @is_return_timestamp ,是否返回时间戳,否则返回时间格式   

  97.   

  98. function month_lastday($timestamp = 0, $is_return_timestamp=true){  

  99.     static $cache ;  

  100.     $id = $timestamp.$is_return_timestamp;  

  101.     if(!isset($cache[$id])){  

  102.         if(!$timestamp$timestamp = time();  

  103.         $lastday = date('Y-m-d'mktime(0,0,0,date('m',$timestamp),date('t',$timestamp),date('Y',$timestamp)));  

  104.         if($is_return_timestamp){  

  105.             $cache[$id] = strtotime($lastday);  

  106.         }else{  

  107.             $cache[$id] = $lastday;  

  108.         }  

  109.     }  

  110.     return $cache[$id];  

  111. }  

  112.   

  113. //上个月的第一天   

  114. // @$timestamp ,某个月的某一个时间戳,默认为当前时间   

  115. // @is_return_timestamp ,是否返回时间戳,否则返回时间格式   

  116.   

  117. function lastmonth_firstday($timestamp = 0, $is_return_timestamp=true){  

  118.     static $cache ;  

  119.     $id = $timestamp.$is_return_timestamp;  

  120.     if(!isset($cache[$id])){  

  121.         if(!$timestamp$timestamp = time();  

  122.         $firstday = date('Y-m-d'mktime(0,0,0,date('m',$timestamp)-1,1,date('Y',$timestamp)));  

  123.         if($is_return_timestamp){  

  124.             $cache[$id] = strtotime($firstday);  

  125.         }else{  

  126.             $cache[$id] = $firstday;  

  127.         }  

  128.     }  

  129.     return $cache[$id];  

  130. }  

  131.   

  132. //上个月的第一天   

  133. // @$timestamp ,某个月的某一个时间戳,默认为当前时间   

  134. // @is_return_timestamp ,是否返回时间戳,否则返回时间格式   

  135.   

  136. function lastmonth_lastday($timestamp = 0, $is_return_timestamp=true){  

  137.     static $cache ;  

  138.     $id = $timestamp.$is_return_timestamp;  

  139.     if(!isset($cache[$id])){  

  140.         if(!$timestamp$timestamp = time();  

  141.         $lastday = date('Y-m-d'mktime(0,0,0,date('m',$timestamp)-1, date('t',lastmonth_firstday($timestamp)),date('Y',$timestamp)));  

  142.         if($is_return_timestamp){  

  143.             $cache[$id] = strtotime($lastday);  

  144.         }else{  

  145.             $cache[$id] =  $lastday;  

  146.         }  

  147.     }  

  148.     return $cache[$id];  

  149. }  

  150. echo '本周星期一:'.this_monday(0,false).'';  

  151. echo '本周星期天:'.this_sunday(0,false).'';  

  152. echo '上周星期一:'.last_monday(0,false).'';  

  153. echo '上周星期天:'.last_sunday(0,false).'';  

  154. echo '本月第一天:'.month_firstday(0,false).'';  

  155. echo '本月最后一天:'.month_lastday(0,false).'';  

  156. echo '上月第一天:'.lastmonth_firstday(0,false).'';  

  157. echo '上月最后一天:'.lastmonth_lastday(0,false).'';