欢迎来到福编程网,本站提供各种互联网专业知识!

php日历[测试通过]

发布时间:2008-03-27 作者: 来源:转载
一直喜欢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_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 = '';
$html .= '';
$html .= '';
$html .= '';
$html .= '';
$html .= '';
$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 .= '';
foreach ($value as $v) {
if ($v) {
if ($v == $date['mday']) {
$html .= '';
} else {
$html .= '';
}
} else {
$html .= '';
}
}
$html .= '';
}
$html .= '
-' . $date['year'] . ';' . $date['month'] . '+
' . $v . '' . $v . '
';
echo $html;
?>

php日历代码2
复制代码 代码如下:
/**
* 日历
*/
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 = 'align="center" style="line-height:150%; font-family:Verdana,宋体; font-size: 12px;">';
$html .= '';
$html .= '';
$html .= '';
$html .= '';
$html .= '';
$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 .= '';
foreach ($value as $v) {
if ($v) {
if ($v == $date['mday']) {
$html .= '';
} else {
$html .= '';
}
} else {
$html .= '';
}
}
$html .= '';
}
$html .= '
-' . $date['year'] . ';' . $date['month'] . '+
' . $v . '' . $v . '
';
echo $html;
?>

下面这个也不错,提示有错误,思路清晰
复制代码 代码如下:
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<<

<<
<
$year-$month
>
>>










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"".($daysofprevmonth-$weekofbeginday+$i)."";
$count++;
}
//当月全部
for($i=1;$i<=$daysofmonth;$i++)
{
$css=($count%7==0||$count%7==1)?"weekday":"normalday";
if($i==$today)$css.="today";

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

echo<<



VKN;
}
?>




calendar







相关推荐