分享3个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;
  }
(0)

相关推荐

  • PHP完整的日历类(CLASS)

    复制代码 代码如下: <?php  class Calendar{  /*  * www.jb51.net修正版 */  var $YEAR,$MONTH,$DAY;  var $WEEK=array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");  var $_MONTH=array(  "01"=&

  • php日历[测试通过]

    比较不错的一款php日历代码 复制代码 代码如下: <?php /** * 日历 * * Copyright(c) 2007 by 陈毅鑫(深空). All rights reserved * To contact the author write to {@link mailto:shenkong@php.net} * @author 陈毅鑫(深空) */ if (function_exists('date_default_timezone_set')) { date_default_time

  • PHP 简单日历实现代码

    复制代码 代码如下: <?php $monthoneday=date("Ym")."01"; $oneweekday=date("w",strtotime($monthoneday)); //获得本月1号星期几 $monthday=date("t"); //本月多少天 $startlow=($oneweekday==0)?7:$oneweekday; //从第几列开始 for($a=1,$b=$startlow;$a&l

  • 用 php 编写的日历

    网上有很多JavaScript编写的日历,这种日历读取的是本地的时间,可能会不准确.所以想找一个用php编写的,能读取服务器时间的日历,但是一直都找不到合适的,于是我自己尝试着写了一个. 代码拷贝框<?php $mnow=(isset($HTTP_GET_VARS['month']) && intval($HTTP_GET_VARS['month'])>0 && intval($HTTP_GET_VARS['month'])<13)?intval($HTT

  • 教大家制作简单的php日历

    最近的一个项目中,需要将数据用日历方式显示,网上有很多的JS插件,后面为了自己能有更大的控制权,决定自己制作一个日历显示.如下图所示: 一.计算数据 1.new一个Calendar类 2.初始化两个下拉框中的数据,年份与月份 3.初始化要搜索的年份和月份 4.计算得出日历中每一天的数据信息,包括css.天数 <?php require_once 'calendar.php'; $util = new Calendar(); $years = array(2012, 2013, 2014, 201

  • php实现的日历程序

    本文实例讲述了php实现的日历程序.分享给大家供大家参考.具体如下: <?php ////判断$Year和$Month是否为空,如果为空就获取系统当前日期,否则用$_GET获取 $Year = empty($_GET['Year']) ? date("Y"): $_GET["Year"]; $Month = empty($_GET['Month']) ? date("m"): $_GET["Month"]; ////获取

  • 一个PHP日历程序

    <?php  //<-------处理通过GET方法提交的变量;开始-------->  if($HTTP_GET_VARS[year]=="")  {      $HTTP_GET_VARS[year]=date("Y");  }  if($HTTP_GET_VARS[month]=="")  {      $HTTP_GET_VARS[month]=date("n");  }  $month=$HTTP_

  • php+javascript的日历控件

    复制代码 代码如下: <html> <head> <title>js calendar</title> <script language="javascript"> /* Copyright Mihai Bazon, 2002-2005 | www.bazon.net/mishoo * ----------------------------------------------------------- * * The DHT

  • php简单日历函数

    本文实例讲述了php实现的日历程序.分享给大家供大家参考.具体如下: <?php /* * php 输出日历程序 */ header("Content-type: text/html;charset=utf-8"); $year=(!isset($_GET['year'])||$_GET['year']=="")?date("Y"):$_GET['year']; $month=(!isset($_GET['month'])||$_GET['

  • PHP简单创建日历的方法

    本文实例讲述了PHP简单创建日历的方法.分享给大家供大家参考,具体如下: <?php function build_calendar($month,$year) { // Create array containing abbreviations of days of week. $daysOfWeek = array('S','M','T','W','T','F','S'); // What is the first day of the month in question? $firstDa

  • php日历制作代码分享

    calendar.class.php 复制代码 代码如下: <?phpclass Calendar {  private $year; //当前的年  private $month; //当前的月  private $start_weekday; //当月的第一天对应的是周几  private $days; //当前月一共多少天 function __construct(){   $this->year=isset($_GET["year"]) ? $_GET["

  • 一个比较不错的PHP日历类分享

    说到对时期和时间的处理,就一定要介绍一下日历程序的编写.但一提起编写日历,大多数人都会认为日历的作用只是为了在页上显示当前的日期,其实日历在我们的开发中有更重要的作用.例如我们开发一个"记事本"就需要通过日历设定日期,还有一些系统中需要按日期去排任务,也需要日历,等等.本例涉及的日期和时间函数并不是很多,都是前面介绍的内容,主要是通过一个日历类的编写,巩固一下前面介绍过的面向对象的语法知识,以及时间函数应用,最主要的是可以提升初学者的思维逻辑和程序设计能力.将日历类Calendar声明

  • php下实现农历日历的代码

    复制代码 代码如下: php农历日历 <?   ###########################################   #作者: 沈潋(S&S Lab)                      #   #E-mail:shenlian@hotmail.com              #   #web: http://www.focus-2000.com           #   #                                         #

随机推荐