本文实例讲述了两个php日期控制类。分享给大家供大家参考。具体分析如下:
由于工作需要我找了二个时间日期控制,这个不用js只要php实现的,因为要带参考查询操作,感兴趣的朋友可以参考一下,我自己用的是第二个,所以第二个己作了修改.
实例一,代码如下:
<?php
class Calendar
{
var $month;
var $year;
function __construct($year,$month)
{
$this->year=$year;
$this->month=$month;
}
function endday()
{
$daydate=date(\"d\",mktime(0,0,0,$this->month,35,$this->year));
$endday=35-$daydate;
return $endday;
}
function oneday_week()
{
$oneday_week=date(\"w\",mktime(0,0,0,$this->month,1,$this->year));
return $oneday_week;
}
function title_link()
{
if(!isset($this->month) && !isset($this->year))
{
$this->year = date(\"Y\");
$this->month = date(\"m\");
}
$lastmonth=$this->month-1;
$nextmonth=$this->month+1;
$lastyear=$this->year;
$nextyear=$this->year;
if($this->month <= 1)
{
$lastmonth=12;
$nextmonth=$this->month+1;
$lastyear=$this->year-1;
$nextyear=$this->year;
}
elseif ($this->month >= 12)
{
$lastmonth=$this->month-1;
$nextmonth=1;
$lastyear=$this->year;
$nextyear=$this->year+1;
}
$str =\"<td colspan=\'2\'><div align=\'center\'><a href=$PHP_SELF?year=\".$lastyear.\"&month=\".$lastmonth.\"&><<<</a></div></td>\";
$str.=\"<td colspan=\'3\'><div align=\'center\'>\".$this->year.\"--\".$this->month.\"</div></td>\";
$str.=\"<td colspan=\'2\'><div align=\'center\'><a href=$PHP_SELF?year=\".$nextyear.\"&month=\".$nextmonth.\"&>>>></a></div></td>\";
return $str;
}
function Show_Calendar()
{
echo \"<table width=\'181\' border=5><tr class=\'tr.title\'>\".$this->title_link().\"</tr><tr>\";
$weekarray=array(\"日\",\"一\",\"二\",\"三\",\"四\",\"五\",\"六\");
for($k=0;$k<=6;$k++)
{
echo \"<td><div align=\'center\'>\".$weekarray[$k].\"</div></td>\";
}
echo \"</tr>\";
for($i=0;$i<=5;$i++)
{
echo \"<tr>\";
for($j=1;$j<=7;$j++)
{
$math=( $j - $this->oneday_week() ) + 7 * $i;
echo \"<td><div align=\'center\'>\";
if($math <= $this->endday() and $math>=1)
{
echo $math;
}
echo \"</div></td>\";
}
echo \"</tr>\";
}
echo \"</table>\";
}
}
$calendar=new Calendar($_GET[\'year\'],$_GET[\'month\']);
$calendar->month=$_GET[\'month\'];
$calendar->year=$_GET[\'year\'];
$calendar->Show_Calendar();
?>
实例二,代码如下:
<?php
header(\"content-type:text/html;charset=utf-8\");
?>
<meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\">
<link href=\"statics/css/zhaoshang.css\" rel=\"stylesheet\" type=\"text/css\">
<div class=\"rili\">
<?php
if(!emptyempty($_GET)){
$year = isset($_GET[\'year\'])?$_GET[\'year\']:date(\'y\');
$month = isset($_GET[\'month\'])?$_GET[\'month\']:date(\'m\');
$day = isset($_GET[\'day\'])?$_GET[\'day\']:date(\'d\');
}
if(emptyempty($year)){
$year = date(\'Y\');
}
if(emptyempty($month)){
$month = date(\'m\');
}
if(emptyempty($month)){
$days = date(\'d\');
}
$start_weekday = date(\'w\',mktime(0,0,0,$month,1,$year));
//echo $start_weekday;
$days = date(\'t\',mktime(0,0,0,$month,1,$year));
//echo $days;
$week = array(\'日\',\'一\',\'二\',\'三\',\'四\',\'五\',\'六\');
$i = 0;
$k = 1;
$j = 0;
echo \'<table >\';
echo \'<tr><td colspan = 7 style =\"text-align:center; width:250px; background:#d5e5f6; border-bottom:1px solid #333366;\">\'.$year.\'年\'.$month.\'月\'.\'</td></tr>\';
echo \'<tr>\';
for($i = 0;$i < 7;$i++){
echo \'<td>\'.$week[$i].\'</td>\';
}
echo \'</tr>\';
echo \'<tr>\';
for($j = 0;$j < $start_weekday;$j++){
echo \'<td style=\"color:#f1f8fc;\">\'.$j.\'</td>\';
}
while($k <= $days){
if($k == $day){
echo \'<td style=\"color:red\"><a href=\"?year=\'.$year.\'&month=\'.$month.\'&day=\'.$k.\'\"><span style=\"color:red\">\'.$k.\'</span></a></td>\';
}else{
echo \'<td><a href=\"?year=\'.$year.\'&month=\'.$month.\'&day=\'.$k.\'\">\'.$k.\'</a></td>\';
}
if(($j+1) % 7 == 0){
echo \'</tr><tr>\';
}
$j++;
$k++;
}
while($j % 7 != 0){
echo \'<td style=\"color:#f1f8fc;\">\'.$j.\'</td>\';
$j++;
}
echo \'</tr>\';
echo \'<tr style=\"background:#d5e5f6;\">\';
echo \"<td><a href=?\".lastYear($year,$month).\">\".\'<<\'.\'</a></td>\';
echo \"<td><a href=?\".lastMonth($year,$month).\">\".\'<\'.\'</a></td>\';
echo \'<td colspan = 3 style=\"width:105px;\" >\';
echo \'<form name = \"myform\" method = \"GET\">\';
echo \'<select name = year class=\"year\">\';
for($start_year = 1970;$start_year<2039;$start_year++){
$selected=\'\';
if( $year== $start_year ) { $selected=\'selected\'; }
echo \'<option value =\'. $start_year.\' \'.$selected.\'>\'.$start_year.\'</option>\'.\" nt\";
}
echo \'</select>\';
echo \'<select name = month class=\"month\">\';
for($start_month = 1;$start_month<=12;$start_month++){
$selected=\'\';
if( $month== $start_month ) { $selected=\'selected\';}
echo \'<option value = \'.$start_month.\' \'.$selected.\'>\'.$start_month.\'</option>\'.\" nt\";
}
echo \'</select>\';
/*echo \'月\';*/
/*echo \'<input type = \"submit\" name = \"search\" value = \"查询\">\';*/
echo \'</form>\';
echo \'</td>\';
echo \"<td><a href=?\".nextYear($year,$month).\">\".\'>>\'.\'</a></td>\';
echo \"<td><a href=?\".nextMonth($year,$month).\">\".\'>\'.\'</a></td>\';
echo \'</tr>\';
echo \'</table>\';
function lastYear($year,$month){
$year = $year-1;
return \"year=$year&month=$month\";
}
function lastMonth($year,$month){
if($month == 1){
$year = $year -1;
$month = 12;
}else{
$month--;
}
return \"year=$year&month=$month\";
}
function nextYear($year,$month){
$year = $year+1;
return \"year=$year&month=$month\";
}
function nextMonth($year,$month){
if($month == 12){
$year = $year +1;
$month = 1;
}else {
$month++;
}
return \"year=$year&month=$month\";
}
?>
</div>
希望本文所述对大家的php程序设计有所帮助。