分享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;
  }
时间: 2015-09-22

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

php日历制作代码分享

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

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完整的日历类(CLASS)

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

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

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

php实现的日历程序

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

php下实现农历日历的代码

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

php+javascript的日历控件

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

教大家制作简单的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 $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日历[测试通过]

比较不错的一款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

JS之日历实践附实现代码

程序是这个样子的:首先采集用户输入的年份和月份,经过计算获取该月份的最大天数,并获取月份第一天是星期几.然后在表格中填充该月份的具体信息. 日历测试 function getMonthJuZhen(date){ if(arguments.length == 0){ throw new Error("need a date"); } if(arguments[0] == null){ throw new Error("date is null or undefined"

日历控件在FF2.0,ie6下测试可用

/*********************************************************  *     使用方法  *         控件调用onclick="fPopCalendar(event,this,this)"  *     如下,给控件设置为readonly  *     <input type="text" style="border:1px solid #cccccc;"   *        

一个简单的日历代码 (For: FF1+ IE5+ Opr7+)测试

Basic Calendar .main { width:200px; border:0px solid black; text-align:center; } .month { background-color:black; font:bold 12px verdana; color:white; } .daysofweek { background-color:gray; font:bold 12px verdana; color:white; } .days { font-size: 12

Java中的Calendar日历API用法完全解析

第一部分 Calendar介绍 Calendar 定义: public abstract class Calendar implements Serializable, Cloneable, Comparable<Calendar> {} Calendar 可以看作是一个抽象类. 它的实现,采用了设计模式中的工厂方法.表现在:当我们获取Calendar实例时,Calendar会根据传入的参数来返回相应的Calendar对象.获取Calendar实例,有以下两种方式: (1) 当我们通过 Cal

Python创建日历实例

本文讲述了Python创建日历的方法,与以往不同的是,本文实例不使用Python提供的calendar实现,相信对大家的Python程序设计有一定的借鉴价值. 此程序在windows下测试通过,由于python字符编码直接输出给操作系统,so win下以gbk ansi为准,linux下大概以utf-8为准(未测试) #coding=gbk # -*- coding: cp936 -*- # 制作一个日历(只显示阳历日期) '''实现方法:不使用python提供的calendar,根据给出的日期

C# 日历类功能的实例代码

C# 日历类的实现代码,具体如下所示: using System; namespace DotNet.Utilities { /// <summary> /// 农历属性 /// </summary> public class CNDate { /// <summary> /// 农历年(整型) /// </summary> public int cnIntYear = 0; /// <summary> /// 农历月份(整型) /// <

FullCalendar日历插件应用之数据展现(一)

开发者可以使用FullCalendar创建强大的日历日程应用,FullCalendar提供了丰富的选项设置和方法调用,使得开发者可以轻松的创建各种功能的日历程序. 由于项目需求,需要通过日历的方式展现某些数据,在网上搜索了很多日历的插件,觉得比较好用的还是fullCalendar,下面是我写的一个简单Demo,如有不足,请多多指正!!! 一.引入必要的文件: <link href="Scripts/Plugins/fullcalendar.css" rel="style

简单JavaScript日历及详细说明

效果图:测试代码: calendar2 #calendar{ background:#000; color:#FFF; font-size:0.8em; } #tittle{ font-size:1.4em; padding:4px 0.55em; } #days th { font-weight:bold; text-align:center; padding:4px 0.55em; } #calendar td{ text-align:center; padding:4px 0.55em;

无聊,写了个日历程序,欢迎拍砖

New Document body{font:12px Arial;} a:link,a:visited,a:active{color:#000;text-decoration:none;background:none;} a:hover{color:#fff;text-decoration:none;background:#000;} 一个通用的日历程序,IE6.Mozilal系列测试通过.欢迎使用 /***************** * *日历程序 *作者:marcian *主页:www.