Heim > php教程 > PHP源码 > Hauptteil

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

PHP中文网
Freigeben: 2016-05-25 17:07:22
Original
1297 Leute haben es durchsucht

本文给大家汇总了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] = &#39;&#39;;
    } else {
      $month_day_arr[$i][$j] = $start_month_day;
      $start_month_day++;
    }
 
    if($start_month_day > $total_month_day){
      break;
    }
  }
}
 
echo "<pre class="brush:php;toolbar:false">";
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
    )
 
)
Nach dem Login kopieren

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

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

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

  function getWeekRange($date){
  $ret=array();
  $timestamp=strtotime($date);
  $w=strftime(&#39;%u&#39;,$timestamp);
  $ret[&#39;sdate&#39;]=date(&#39;Y-m-d 00:00:00&#39;,$timestamp-($w-1)*86400);
  $ret[&#39;edate&#39;]=date(&#39;Y-m-d 23:59:59&#39;,$timestamp+(7-$w)*86400);
  return $ret;
  }
  //author:zhxia 获取指定日期所在月的开始日期与结束日期
  function getMonthRange($date){
  $ret=array();
  $timestamp=strtotime($date);
  $mdays=date(&#39;t&#39;,$timestamp);
  $ret[&#39;sdate&#39;]=date(&#39;Y-m-1 00:00:00&#39;,$timestamp);
  $ret[&#39;edate&#39;]=date(&#39;Y-m-&#39;.$mdays.&#39; 23:59:59&#39;,$timestamp);
  return $ret;
  }
  //author:zhxia 以上两个函数的应用
  function getFilter($n){
  $ret=array();
  switch($n){
  case 1:// 昨天
  $ret[&#39;sdate&#39;]=date(&#39;Y-m-d 00:00:00&#39;,strtotime(&#39;-1 day&#39;));
  $ret[&#39;edate&#39;]=date(&#39;Y-m-d 23:59:59&#39;,strtotime(&#39;-1 day&#39;));
  break;
  case 2://本星期
  $ret=getWeekRange(date(&#39;Y-m-d&#39;));
  break;
  case 3://上一个星期
  $strDate=date(&#39;Y-m-d&#39;,strtotime(&#39;-1 week&#39;));
  $ret=getWeekRange($strDate);
  break;
  case 4: //上上星期
  $strDate=date(&#39;Y-m-d&#39;,strtotime(&#39;-2 week&#39;));
  $ret=getWeekRange($strDate);
  break;
  case 5: //本月
  $ret=getMonthRange(date(&#39;Y-m-d&#39;));
  break;
  case 6://上月
  $strDate=date(&#39;Y-m-d&#39;,strtotime(&#39;-1 month&#39;));
  $ret=getMonthRange($strDate);
  break;
  }
  return $ret;
  }
Nach dem Login kopieren


Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage