加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2023-04-03 12:58:10 所属栏目:PHP教程 来源:
导读:本文给大家汇总了3个php获取日历的函数,分别是php获取指定日期的月份的日历、获取指定日期所在月的开始日期与结束日期、获取当前星期的日期范围,都是比较常用的方法,有需要的小伙伴可以参考下。提供一个日期,获取

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

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

$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; 

}

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!