PHP完整的日历类(CLASS)

代码如下:

<?php 
class Calendar{ 
/* 
* www.jb51.net修正版
*/ 
var $YEAR,$MONTH,$DAY; 
var $WEEK=array("星期日","星期一","星期二","星期三","星期四","星期五","星期六"); 
var $_MONTH=array( 
"01"=>"一月", 
"02"=>"二月", 
"03"=>"三月", 
"04"=>"四月", 
"05"=>"五月", 
"06"=>"六月", 
"07"=>"七月", 
"08"=>"八月", 
"09"=>"九月", 
"10"=>"十月", 
"11"=>"十一月", 
"12"=>"十二月" 
); 
//设置年份 
function setYear($year){ 
$this->YEAR=$year; 

//获得年份 
function getYear(){ 
return $this->YEAR; 

//设置月份 
function setMonth($month){ 
$this->MONTH=$month; 

//获得月份 
function getMonth(){ 
return $this->MONTH; 

//设置日期 
function setDay($day){ 
$this->DAY=$day; 

//获得日期 
function getDay(){ 
return $this->DAY; 

//打印日历 
function OUT(){ 
$this->_env(); 
$week=$this->getWeek($this->YEAR,$this->MONTH,$this->DAY);//获得日期为星期几 (例如今天为2003-07-18,星期五) 
$fweek=$this->getWeek($this->YEAR,$this->MONTH,1); //获得此月第一天为星期几 
echo "<div style=\"margin:0;border:1 solid black;width:300;font:9pt\"><form action=$_SERVER[PHP_SELF] method=\"post\" style=\"margin:0\"><select name=\"month\" onchange=\"this.form.submit();\">"; 
for($ttmpa=1;$ttmpa<13;$ttmpa++){//打印12个月 
$ttmpb=sprintf("%02d",$ttmpa); 
if(strcmp($ttmpb,$this->MONTH)==0){ 
$select="selected style=\"background-color:#c0c0c0\""; 
}else{ 
$select=""; 

echo "<option value=\".$ttmpb\".$select>".$this->MONTH[$ttmpb]."</option>\r\n"; 

echo " </select> <select name=\"year\" onchange=\"this.form.submit();\">";//打印年份,前后10年 
for($ctmpa=$this->YEAR-10;$ctmpa<$this->YEAR+10;$ctmpa++){ 
if($ctmpa>2037){ 
break; 

if($ctmpa<1970){ 
continue; 

if(strcmp($ctmpa,$this->YEAR)==0){ 
$select="selected style=\"background-color:#c0c0c0\""; 
}else{ 
$select=""; 

echo "<option value=\"$ctmpa\" $select>$ctmpa</option>\r\n"; 

echo "</select> 
</form> 
<table border=0 align=center>"; 
for($Tmpa=0;$Tmpa<count($this->WEEK);$Tmpa++){//打印星期标头 
echo "<td>".$this->WEEK[$Tmpa]; 

for($Tmpb=1;$Tmpb<=date("t",mktime(0,0,0,$this->MONTH,$this->DAY,$this->YEAR));$Tmpb++){//打印所有日期 
if(strcmp($Tmpb,$this->DAY)==0){ //获得当前日期,做标记 
$flag=" bgcolor='#ff0000'"; 
}else{ 
$flag=' bgcolor=#ffffff'; 

if($Tmpb==1){ 
echo "<tr>"; //补充打印 
for($Tmpc=0;$Tmpc<$fweek;$Tmpc++){ 
echo "<td>"; 


if(strcmp($this->getWeek($this->YEAR,$this->MONTH,$Tmpb),0)==0){ 
echo "<tr><td align=center $flag>$Tmpb"; 
}else{ 
echo "<td align=center $flag>$Tmpb"; 


echo "</table></div>"; 

//获得方法内指定的日期的星期数 
function getWeek($year,$month,$day){ 
$week=date("w",mktime(0,0,0,$month,$day,$year));//获得星期 
return $week;//获得星期 

function _env(){ 
if(isset($_POST["month"])){ //有指定月 
$month=$_POST["month"]; 
}else{ 
$month=date("m"); //默认为本月 

if(isset($_POST["year"])){ //有指年 
$year=$_POST["year"]; 
}else{ 
$year=date("Y"); //默认为本年 

$this->setYear($year); 
$this->setMonth($month); 
$this->setDay(date("d")); 


$D=new Calendar; 
$D->OUT(); 
?>

(0)

相关推荐

  • php实现阳历阴历互转的方法

    最近对阳历转阴历从而得到相应节日的算法这方面比较感兴趣,于是就在网上搜了一圈.不错,还算是找到一个比较不错的php类,实现了将阳历转换为阴历(农历),阴历转换为阳历的算法,同时还能获取干支纪年,生肖,以及相应的阴历的中文叫法等等,功能还是挺齐全的,在这里分享给大家. 具体类代码如下: class Lunar{ var $MIN_YEAR=1891; var $MAX_YEAR=2100; var $lunarInfo=array( array(0,2,9,21936),array(6,1,30,

  • php 阴历-农历-转换类代码

    复制代码 代码如下: <?php/*** 公农历转换(1912 - 2012) * * Usage:*   // 公历1983-10-5转农历*   $lunar = new Lunar();*   $date = $lunar->getLar('1983-10-5',0);*   echo date("Y-m-d", $date);*   // 农历1983-8-29转公历*   $date = $lunar->getLar('1983-8-29',1);*   e

  • PHP编程实现阳历转换为阴历的方法实例

    本文实例讲述了PHP编程实现阳历转换为阴历的方法.分享给大家供大家参考,具体如下: php类 <?php /** * Class Lunar * 农历 节气 节日 * author:guoyu@xzd */ class Lunar { public $MIN_YEAR = 1891; public $MAX_YEAR = 2100; public $lunarInfo = array( array(0,2,9,21936),array(6,1,30,9656),array(0,2,17,9584

  • PHP实现的汉字拼音转换和公历农历转换类及使用示例

    本文整理了PHP汉字拼音转换和公历农历转换两个功能类文件,非常实用.比如我们查找通讯录可以通过联系人姓名的拼音首字母来查询,可以通过首字母来导航大数据量,可以通过转换拼音来做网站优化等.公农历转化一般用在日历日程安排的项目中,方便农历的节日提醒等等. 1.PHP汉字转拼音 Pinyin.class.php类文件可以将大多数汉字转换成汉语拼音,当然也有个别生僻字不能转换,如果你想转换所有的汉字拼音的话,可能需要再配合一个汉字字库来实现,使用该类文件就基本能满足你的项目需求了.用法: 复制代码 代码

  • PHP实现阳历到农历转换的类实例

    本文实例讲述了PHP实现阳历到农历转换的类.分享给大家供大家参考.具体如下: 复制代码 代码如下: <?php //PHP阳历到农历转换的一个类 class Calendar { //农历每月的天数     var $everyCMonth=array(     0=>array(8,0,0,0,0,0,0,0,0,0,0,0,29,30,7,1),     1=>array(0,29,30,29,29,30,29,30,29,30,30,30,29,0,8,2),     2=>

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

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

  • php实现的农历算法实例

    本文实例讲述了php实现的农历算法.分享给大家供大家参考.具体如下: <?php function lunarcalendar ($month, $year) { global $lnlunarcalendar; /** * Lunar calendar 博大精深的农历 * 原始数据和算法思路来自 S&S */ /* 农历每月的天数. 每个元素为一年.每个元素中的数据为: [0]是闰月在哪个月,0为无闰月: [1]到[13]是每年12或13个月的每月天数: [14]是当年的天干次序, [15

  • 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 function nongli($riqi) { //优化修改 20160807 FXL $nian=date('Y',strtotime($riqi)); $yue=date('m',strtotime($riqi)); $ri=date('d',strtotime($riqi)); #源码部分原作者:沈潋(S&S Lab) #农历每月的天数 $everymonth=array( 0=>array(8,0

  • PHP实现的简单日历类

    本文实例讲述了PHP实现的简单日历类.分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: date_default_timezone_set("etc/gmt-8"); header("Content-type: text/html; charset=utf-8"); class calendar{ var $t = array(); var $datesofmonth = array('1'=>'31','2'=>'28','3'=>

  • php Calender(日历)代码分享

    代码如下: 复制代码 代码如下: <?php/** *  * 我的日历 * date_default_timezone_set date mktime * @param int $year * @param int $month * @param string $timezone * @author fc_lamp */function myCalender($year = '', $month = '', $timezone = 'Asia/Shanghai'){ date_default_t

随机推荐