php日历[测试通过]

2018-10-15 16:59

阅读:444

比较不错的一款php日历代码
复制代码 代码如下:
<?php
/**
* 日历
*
* Copyright(c) 2007 by 陈毅鑫(深空). All rights reserved
* @author 陈毅鑫(深空)
*/
if (function_exists(date_default_timezone_set)) {
date_default_timezone_set(Asia/Chongqing);
}
$date = isset($_GET[date]) ? $_GET[date] : date(Y-m-d);
$date = getdate(strtotime($date));
$end = getdate(mktime(0, 0, 0, $date[mon] + 1, 1, $date[year]) - 1);
$start = getdate(mktime(0, 0, 0, $date[mon], 1, $date[year]));
$pre = date(Y-m-d, $start[0] - 1);
$next = date(Y-m-d, $end[0] + 86400);
$html = <table border=1>;
$html .= <tr>;
$html .= <td><a href= . $PHP_SELF . ?date= . $pre . >-</a></td>;
$html .= <td colspan=5> . $date[year] . ; . $date[month] . </td>;
$html .= <td><a href= . $PHP_SELF . ?date= . $next . >+</a></td>;
$html .= </tr>;
$arr_tpl = array(0 => , 1 => , 2 => , 3 => , 4 => , 5 => , 6 => );
$date_arr = array();
$j = 0;
for ($i = 0; $i < $end[mday]; $i++) {
if (!isset($date_arr[$j])) {
$date_arr[$j] = $arr_tpl;
}
$date_arr[$j][($i+$start[wday])%7] = $i+1;
if ($date_arr[$j][6]) {
$j++;
}
}
foreach ($date_arr as $value) {
$html .= <tr>;
foreach ($value as $v) {
if ($v) {
if ($v == $date[mday]) {
$html .= <td><b> . $v . </b></td>;
} else {
$html .= <td> . $v . </td>;
}
} else {
$html .= <td></td>;
}
}
$html .= </tr>;
}
$html .= </table>;
echo $html;
?>

php日历代码2
复制代码 代码如下:
<?php
/**
* 日历
*/
if (function_exists(date_default_timezone_set)) {
date_default_timezone_set(Asia/Chongqing);
}
$date = isset($_GET[date]) ? $_GET[date] : date(Y-m-d);
$date = getdate(strtotime($date));
$end = getdate(mktime(0, 0, 0, $date[mon] + 1, 1, $date[year]) - 1);
$start = getdate(mktime(0, 0, 0, $date[mon], 1, $date[year]));
$pre = date(Y-m-d, $start[0] - 1);
$next = date(Y-m-d, $end[0] + 86400);
$html = <table width=200 border=1 cellspacing=0 bordercolor=#999999
align=center style=line-height:150%; font-family:Verdana,宋体; font-size: 12px;>;
$html .= <tr>;
$html .= <td><a href= . $PHP_SELF . ?date= . $pre . >-</a></td>;
$html .= <td colspan=5> . $date[year] . ; . $date[month] . </td>;
$html .= <td><a href= . $PHP_SELF . ?date= . $next . >+</a></td>;
$html .= </tr>;
$arr_tpl = array(0 => , 1 => , 2 => , 3 => , 4 => , 5 => , 6 => );
$date_arr = array();
$j = 0;
for ($i = 0; $i < $end[mday]; $i++) {
if (!isset($date_arr[$j])) {
$date_arr[$j] = $arr_tpl;
}
$date_arr[$j][($i+$start[wday])%7] = $i+1;
if ($date_arr[$j][6]) {
$j++;
}
}
foreach ($date_arr as $value) {
$html .= <tr>;
foreach ($value as $v) {
if ($v) {
if ($v == $date[mday]) {
$html .= <td><b> . $v . </b></td>;
} else {
$html .= <td> . $v . </td>;
}
} else {
$html .= <td> </td>;
}
}
$html .= </tr>;
}
$html .= </table>;
echo $html;
?>

下面这个也不错,提示有错误,思路清晰
复制代码 代码如下:
<?php
functioncalendar()
{
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-1==0)
$prevmonth=($year-1).12;
else$prevmonth=$year.($month-1);

if($month+1==13)
$nextmonth=($year+1).1;
else$nextmonth=$year.($month+1);

$prevyear=($year-1).$month;
$nextyear=($year+1).$month;

echo<<<VKN
<tablewidth=200border=0cellpadding=2cellspacing=2>
<tr>
<tdclass=weekday><ahref=?ym=$prevyear><<</a></td>
<tdclass=normalday><ahref=?ym=$prevmonth><</a></td>
<tdcolspan=3class=normalday>$year-$month</td>
<tdclass=normalday><ahref=?ym=$nextmonth>></a></td>
<tdclass=weekday><ahref=?ym=$nextyear>>></a></td>
</tr>
<tr>
<tdwidth=27class=weekday>日</td>
<tdwidth=27class=normalday>一</td>
<tdwidth=27class=normalday>二</td>
<tdwidth=27class=normalday>三</td>
<tdwidth=27class=normalday>四</td>
<tdwidth=27class=normalday>五</td>
<tdwidth=27class=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=1;$i<=$weekofbeginday;$i++)
{
echo<tdclass=othermonth>.($daysofprevmonth-$weekofbeginday+$i).</td>;
$count++;
}
//当月全部
for($i=1;$i<=$daysofmonth;$i++)
{
$css=($count%7==0$count%7==1)?weekday:normalday;
if($i==$today)$css.=today;

echo<tdclass=.$css.>.$i.</td>;
if($count%7==0)echo</tr><tr>;
$count++;
}
//下月前几天
for($i=1;$i<=6-$weekofendday;$i++)
{
echo<tdclass=othermonth>.$i.</td>;
}

echo<<<VKN
<tr>
<tdcolspan=7></td>
</tr>
</table>
VKN;
}
?>
<!DOCTYPEhtmlPUBLIC-//W3C//DTDXHTML1.0Transitional//EN
<htmlxmlns=
<head>
<metahttp-equiv=Content-Typecontent=text/html;charset=gb2312/>
<title>calendar</title>
<styletype=text/css>
<!--
.weekday{
font-size:9pt;
color:#FF0000;
text-align:center;
}
.normalday{
font-size:9pt;
color:#000000;
text-align:center;
}
.weekdaytoday{
font-size:9pt;
color:#FF0000;
text-align:center;
background-color:#FFD9D9;
font-weight:bold;
}
.normaldaytoday{
font-size:9pt;
color:#000000;
text-align:center;
background-color:#DDDDDD;
font-weight:bold;
}
.othermonth{
font-size:9pt;
font-style:italic;
color:#999999;
text-align:center;
}
-->
</style>
</head>

<body>
<?phpcalendar();?>
</body>
</html>


评论


亲,登录后才可以留言!