首页 > 开发 > PHP > 正文

分享3个php获取日历的函数

2024-05-04 23:39:11
字体:
来源:转载
供稿:网友

本文给大家汇总了3个php获取日历的函数,分别是php获取指定日期的月份的日历、获取指定日期所在月的开始日期与结束日期、获取当前星期的日期范围,都是比较常用的方法,有需要的小伙伴可以参考下。

提供一个日期,获取这个日期的星期对应日历列表,键为星期标示

 

 
  1. $month_date = '2015-09-25'
  2. $start_time = strtotime($month_date); 
  3. $start_week = date('w', $start_time); 
  4. $total_month_day = date('t', $start_time); 
  5.  
  6. $weeks_in_month = ceil(($start_week+$total_month_day)/7); 
  7.  
  8. $month_day_arr = []; 
  9. $start_month_day = 1; 
  10. for($i=0;$i<$weeks_in_month;$i++) { 
  11.  
  12. for($j=0;$j<7;$j++){ 
  13. if($i ==0 && $j >= $start_week) { 
  14. $month_day_arr[$i][$j] = $start_month_day; 
  15. $start_month_day++; 
  16. } elseif($i == 0) { 
  17. $month_day_arr[$i][$j] = ''
  18. else { 
  19. $month_day_arr[$i][$j] = $start_month_day; 
  20. $start_month_day++; 
  21.  
  22. if($start_month_day > $total_month_day){ 
  23. break
  24.  
  25. echo "<pre>"
  26. print_r($month_day_arr); 
  27.  
  28. Array 
  29. [0] => Array 
  30. [0] =>  
  31. [1] =>  
  32. [2] => 1 
  33. [3] => 2 
  34. [4] => 3 
  35. [5] => 4 
  36. [6] => 5 
  37.  
  38. [1] => Array 
  39. [0] => 6 
  40. [1] => 7 
  41. [2] => 8 
  42. [3] => 9 
  43. [4] => 10 
  44. [5] => 11 
  45. [6] => 12 
  46.  
  47. [2] => Array 
  48. [0] => 13 
  49. [1] => 14 
  50. [2] => 15 
  51. [3] => 16 
  52. [4] => 17 
  53. [5] => 18 
  54. [6] => 19 
  55.  
  56. [3] => Array 
  57. [0] => 20 
  58. [1] => 21 
  59. [2] => 22 
  60. [3] => 23 
  61. [4] => 24 
  62. [5] => 25 
  63. [6] => 26 
  64.  
  65. [4] => Array 
  66. [0] => 27 
  67. [1] => 28 
  68. [2] => 29 
  69. [3] => 30 
  70.  

获取指定日期所在月的开始日期与结束日期

 

 
  1. /** 
  2. * @param string $date 
  3. * @param boolean 为true返回开始日期,否则返回结束日期 
  4. * @return array 
  5. * @access private 
  6. */ 
  7. private function getMonthRange( $date, $returnFirstDay = true ) { 
  8. $timestamp = strtotime( $date ); 
  9. if ( $returnFirstDay ) { 
  10. $monthFirstDay = date( 'Y-m-1 00:00:00', $timestamp ); 
  11. return $monthFirstDay; 
  12. else { 
  13. $mdays = date( 't', $timestamp ); 
  14. $monthLastDay = date( 'Y-m-' . $mdays . ' 23:59:59', $timestamp ); 
  15. return $monthLastDay; 

获取当前星期的日期范围,也就是从星期一到星期日的日期范围。

 

 
  1. function getWeekRange($date){ 
  2. $ret=array(); 
  3. $timestamp=strtotime($date); 
  4. $w=strftime('%u',$timestamp); 
  5. $ret['sdate']=date('Y-m-d 00:00:00',$timestamp-($w-1)*86400); 
  6. $ret['edate']=date('Y-m-d 23:59:59',$timestamp+(7-$w)*86400); 
  7. return $ret; 
  8. //author:zhxia 获取指定日期所在月的开始日期与结束日期 
  9. function getMonthRange($date){ 
  10. $ret=array(); 
  11. $timestamp=strtotime($date); 
  12. $mdays=date('t',$timestamp); 
  13. $ret['sdate']=date('Y-m-1 00:00:00',$timestamp); 
  14. $ret['edate']=date('Y-m-'.$mdays.' 23:59:59',$timestamp); 
  15. return $ret; 
  16. //author:zhxia 以上两个函数的应用 
  17. function getFilter($n){ 
  18. $ret=array(); 
  19. switch($n){ 
  20. case 1:// 昨天 
  21. $ret['sdate']=date('Y-m-d 00:00:00',strtotime('-1 day')); 
  22. $ret['edate']=date('Y-m-d 23:59:59',strtotime('-1 day')); 
  23. break
  24. case 2://本星期 
  25. $ret=getWeekRange(date('Y-m-d')); 
  26. break
  27. case 3://上一个星期 
  28. $strDate=date('Y-m-d',strtotime('-1 week')); 
  29. $ret=getWeekRange($strDate); 
  30. break
  31. case 4: //上上星期 
  32. $strDate=date('Y-m-d',strtotime('-2 week')); 
  33. $ret=getWeekRange($strDate); 
  34. break
  35. case 5: //本月 
  36. $ret=getMonthRange(date('Y-m-d')); 
  37. break
  38. case 6://上月 
  39. $strDate=date('Y-m-d',strtotime('-1 month')); 
  40. $ret=getMonthRange($strDate); 
  41. break
  42. return $ret; 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表