当前位置:首页> PHP教程> php基础
关键字
文章内容
再发一个收藏的php日历,酷。。
 
 
修改时间:[2010/03/05 03:12]    阅读次数:[950]    发表者:[起缘]
 
<?php
function calendar()
{
    if(
$_GET['ym'])
    {
        
$year substr($_GET['ym'],0,4);
        
$month substr($_GET['ym'],4,(strlen($_GET['ym'])-4));
        
        if(
$month>12)
        {
            
$year += floor($month/12);
            
$month $month 12;
        }
        if(
$year 2030$year 2030;
        if(
$year 1980$year 1980;
    }
    
    
$year = isset($year) ? $year date('Y');
    
$month = isset($month) ? $month date('n');
    
    if(
$year==date('Y') && $month==date('n')) $today date('j');
    
    if(
$month-== 0)
        
$prevmonth = ($year 1)."12";
    else 
$prevmonth $year.($month 1);
    
    if(
$month+== 13)
        
$nextmonth = ($year+1)."1";
    else 
$nextmonth $year.($month+1);
    
    
$prevyear = ($year 1).$month;
    
$nextyear = ($year 1).$month;
    
    echo <<<VKN
        <table width="200" border="0" cellpadding="2" cellspacing="2">
  <tr>
    <td class="weekday"><a href="?ym=$prevyear">&lt;&lt;</a></td>
    <td class="normalday"><a href="?ym=$prevmonth">&lt;</a></td>
    <td colspan="3" class="normalday">$year - $month</td>
    <td class="normalday"><a href="?ym=$nextmonth">&gt;</a></td>
    <td class="weekday"><a href="?ym=$nextyear">&gt;&gt;</a></td>
  </tr>
  <tr>
    <td width="27" class="weekday">日</td>
    <td width="27" class="normalday">一</td>
    <td width="27" class="normalday">二</td>
    <td width="27" class="normalday">三</td>
    <td width="27" class="normalday">四</td>
    <td width="27" class="normalday">五</td>
    <td width="27" class="weekday">六</td>
  </tr>
VKN;
    
$nowtime mktime(0,0,0,$month,1,$year);//当月1号转为秒
    
$daysofmonth date(t,$nowtime);//当月天数
    
$weekofbeginday date(w,$nowtime);//当月第一天是星期几
    
$weekofendday date(w,mktime(0,0,0,$month+1,0,$year));//当月最后一天是星期几
    
$daysofprevmonth date(t,mktime(0,0,0,$month,0,$year));//上个月天数
    
    
$count 1;//计数
    //列出上月后几天
    
for($i $i <= $weekofbeginday $i++)
        {
            echo     
"<td class='othermonth'>".($daysofprevmonth-$weekofbeginday+$i)."</td>";
            
$count++;
        }
    
//当月全部
    
for($i $i <= $daysofmonth $i++)
        {
            
$css = ($count%7==|| $count%7==1)?"weekday":"normalday";
            if(
$i == $today$css .= "today";
            
            echo     
"<td class='".$css."'>".$i."</td>";
            if(
$count%7==0) echo "</tr><tr>";
            
$count++;
        }
    
//下月前几天
    
for ($i 1;$i <= 6-$weekofendday;$i++)
        {
            echo     
"<td class='othermonth'>".$i."</td>";
        }
        
    echo <<<VKN
          <tr>
    <td colspan="7"></td>
  </tr>
</table>
VKN;
}
?>
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<
title>calendar</title>
<
style type="text/css">
<!--
.
weekday {
    
font-size9pt;
    
color#FF0000;
    
text-aligncenter;
}
.
normalday {
    
font-size9pt;
    
color#000000;
    
text-aligncenter;
}
.
weekdaytoday {
    
font-size9pt;
    
color#FF0000;
    
text-aligncenter;
    
background-color#FFD9D9;
    
font-weightbold;
}
.
normaldaytoday {
    
font-size9pt;
    
color#000000;
    
text-aligncenter;
    
background-color#DDDDDD;
    
font-weightbold;
}
.
othermonth {
    
font-size9pt;
    
font-styleitalic;
    
color#999999;
    
text-aligncenter;
}
-->
</
style>
</
head>

<
body>
<?
php calendar();?>
</
body>
</
html

(非常全面的一个php技术网站, 有相当丰富的文章和源代码.)