喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

[北京]代朋友公司招聘PHP高级程序员多名

上一主题 下一主题
     
标题: [代码] PHP实现的简单日历  
 
zm6931
新手上路
Rank: 1


UID 70097
精华 0
积分 48
帖子 32
金钱 48 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2006-3-22
状态 离线
PHP实现的简单日历

最近工作找了一些日历的插件,简单修改下,拿来贴一帖。
这个由php实现的日历,在使用的时候有很多限制,如果每次查看上个月或者下个月就来一次刷新,所以该代码仅供娱乐

<?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-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 <<<END
        <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>
END;

    
$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 
"<td class='othermonth'>".($daysofprevmonth-$weekofbeginday+$i)."</td>";
        
$count++;
    }
    
//当月全部
    
for($i=1;$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 <<<END
          <tr>
    <td colspan="7"></td>
  </tr>
</table>
END;
}
?>
<!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-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>
<?php calendar();?>
</body>
</html>
2007-12-5 05:22 PM#1
查看资料  Blog  发短消息  顶部
 
剑枫 (雪花)
论坛元老
Rank: 8Rank: 8
欧玛嘎


UID 26144
精华 1
积分 4846
帖子 1720
金钱 4836 喜悦币
威望 10
人脉 0
阅读权限 90
注册 2004-2-14
来自 山东郓城
状态 离线
[推荐阅读] 发一个下载文件的例子(新手看)
没运行, 但支持.........



在场外支持奥运.....
2007-12-6 01:51 AM#2
查看资料  访问主页  发短消息  QQ  顶部
 
osdn
禁止发言

初级会员



UID 66985
精华 0
积分 -37
帖子 353
金钱 -37 喜悦币
威望 0
人脉 0
阅读权限 0
注册 2005-9-28
来自 红色主机
状态 离线
[推荐阅读] 人生,就像坐一辆公交车
*** 作者被禁止或删除 内容自动屏蔽 ***
2007-12-6 04:40 PM#3
查看资料  访问主页  发短消息  顶部
 
psdshow
金牌会员
Rank: 6Rank: 6
论坛元老



UID 30908
精华 0
积分 1763
帖子 1367
金钱 1763 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2004-9-6
来自 永州-廣州
状态 离线
[推荐阅读] rewriterule请教
有显示农历的那种不?
(跟现实中的黄历一样的那种)




以下AD由PHPX赞助:
广州梦莎五金饰品厂 东莞恒隆五金饰品厂 承接php私活
2007-12-6 05:50 PM#4
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
jesus_x1983
新手上路
Rank: 1



UID 98543
精华 0
积分 0
帖子 20
金钱 0 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-9-14
状态 离线
[推荐阅读] 绿化进行中....累
收藏了,学习~
2007-12-6 06:00 PM#5
查看资料  发短消息  顶部
 
my.com.net
中级会员
Rank: 3Rank: 3


UID 90379
精华 0
积分 358
帖子 282
金钱 358 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2007-3-29
状态 离线
[推荐阅读] 谁在搞小武之家
好长....



一又二分之一许愿吧
2007-12-9 02:05 PM#6
查看资料  访问主页  发短消息  QQ  顶部
 
ys5955092 (离开布兰卡)
论坛元老
Rank: 8Rank: 8


UID 95550
精华 0
积分 12355
帖子 557
金钱 12355 喜悦币
威望 0
人脉 0
阅读权限 90
注册 2007-7-17
来自 qd
状态 离线
[推荐阅读] 招聘C、C++程序员
顶一下,挺好



心甘情愿做Wzhu的小弟。
2007-12-10 10:19 AM#7
查看资料  发短消息  QQ  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.033217 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP