首页 > 开发 > PHP > 正文

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

2024-05-04 22:34:54
字体:
来源:转载
供稿:网友

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

$month_date = '2015-09-25';$start_time = strtotime($month_date);$start_week = date('w', $start_time);$total_month_day = date('t', $start_time); $weeks_in_month = ceil(($start_week+$total_month_day)/7); $month_day_arr = [];$start_month_day = 1;for($i=0;$i<$weeks_in_month;$i++) {   for($j=0;$j<7;$j++){    if($i ==0 && $j >= $start_week) {      $month_day_arr[$i][$j] = $start_month_day;      $start_month_day++;    } elseif($i == 0) {      $month_day_arr[$i][$j] = '';    } else {      $month_day_arr[$i][$j] = $start_month_day;      $start_month_day++;    }     if($start_month_day > $total_month_day){      break;    }  }} echo "<pre>";print_r($month_day_arr); Array(  [0] => Array    (      [0] =>       [1] =>       [2] => 1      [3] => 2      [4] => 3      [5] => 4      [6] => 5    )   [1] => Array    (      [0] => 6      [1] => 7      [2] => 8      [3] => 9      [4] => 10      [5] => 11      [6] => 12    )   [2] => Array    (      [0] => 13      [1] => 14      [2] => 15      [3] => 16      [4] => 17      [5] => 18      [6] => 19    )   [3] => Array    (      [0] => 20      [1] => 21      [2] => 22      [3] => 23      [4] => 24      [5] => 25      [6] => 26    )   [4] => Array    (      [0] => 27      [1] => 28      [2] => 29      [3] => 30    ) )

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

/**   * @param string $date   * @param boolean 为true返回开始日期,否则返回结束日期   * @return array   * @access private   */  private function getMonthRange( $date, $returnFirstDay = true ) {    $timestamp = strtotime( $date );    if ( $returnFirstDay ) {      $monthFirstDay = date( 'Y-m-1 00:00:00', $timestamp );      return $monthFirstDay;    } else {      $mdays = date( 't', $timestamp );      $monthLastDay = date( 'Y-m-' . $mdays . ' 23:59:59', $timestamp );      return $monthLastDay;    }  }

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

  function getWeekRange($date){  $ret=array();  $timestamp=strtotime($date);  $w=strftime('%u',$timestamp);  $ret['sdate']=date('Y-m-d 00:00:00',$timestamp-($w-1)*86400);  $ret['edate']=date('Y-m-d 23:59:59',$timestamp+(7-$w)*86400);  return $ret;  }  //author:zhxia 获取指定日期所在月的开始日期与结束日期  function getMonthRange($date){  $ret=array();  $timestamp=strtotime($date);  $mdays=date('t',$timestamp);  $ret['sdate']=date('Y-m-1 00:00:00',$timestamp);  $ret['edate']=date('Y-m-'.$mdays.' 23:59:59',$timestamp);  return $ret;  }  //author:zhxia 以上两个函数的应用  function getFilter($n){  $ret=array();  switch($n){  case 1:// 昨天  $ret['sdate']=date('Y-m-d 00:00:00',strtotime('-1 day'));  $ret['edate']=date('Y-m-d 23:59:59',strtotime('-1 day'));  break;  case 2://本星期  $ret=getWeekRange(date('Y-m-d'));  break;  case 3://上一个星期  $strDate=date('Y-m-d',strtotime('-1 week'));  $ret=getWeekRange($strDate);  break;  case 4: //上上星期  $strDate=date('Y-m-d',strtotime('-2 week'));  $ret=getWeekRange($strDate);  break;  case 5: //本月  $ret=getMonthRange(date('Y-m-d'));  break;  case 6://上月  $strDate=date('Y-m-d',strtotime('-1 month'));  $ret=getMonthRange($strDate);  break;  }  return $ret;  }            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表