用PHP怎样创建一个日历类,方法是什么?
导读:这篇文章主要介绍用PHP怎样创建一个日历类的内容,对大家学习PHP会有一定的帮助,下文示例代码具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章能有所收获,接下来小编带着大家一起了解看看。 calendar.class.php...
这篇文章主要介绍用PHP怎样创建一个日历类的内容,对大家学习PHP会有一定的帮助,下文示例代码具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章能有所收获,接下来小编带着大家一起了解看看。
calendar.class.php
?php
/*
* 创建一个日历类
*
*
*/
//修改默认时区
date_default_timezone_set("PRC");
class Calendar {
private $year;
private $month;
private $day;
//当月总天数
private $first_week;
//每月的第一天是星期几
//构造函数
function __construct() {
$this->
year = isset($_GET['year'])?$_GET['year']:date("Y");
$this->
month = isset($_GET["month"])?$_GET["month"]:date("m");
$this->
first_week = date("w", mktime(0, 0 ,0, $this->
month, 1, $this->
year));
$this->
day = date("t", mktime(0, 0 ,0, $this->
month, 1, $this->
year));
}
function showCalendar() {
// echo $this->
year."年".$this->
month."月".$this->
first_week."天".$this->
day;
echo "table align='center'>
";
//用表格输出
$this->
chageDate("index.php");
//用于用户调整年月份
$this->
weekList();
//显示星期
$this->
dayList();
//显示天数
echo "/table>
";
}
//1、显示星期
private function weekList() {
$week = array("日","一","二","三","四","五","六");
echo "tr>
";
for ($i = 0;
$i count($week);
$i++) {
echo "th>
".$week[$i]."/th>
";
}
echo "/tr>
";
}
//2.显示天数
private function dayList() {
$color = "#2ca50c";
echo "tr>
";
for ($i = 0;
$i $this->
first_week;
$i++) {
//输出空格,弥补当前月空缺部分
echo "td bgcolor='#2ca50c'>
/td>
";
}
for ($k = 1;
$i = $this->
day;
$k++) {
$i++;
if ($k == date("d")) echo "td id='nowd'>
".$k."/td>
";
//是今天,加效果
else echo "td bgcolor=$color>
".$k."/td>
";
if ($i % 7 == 0) {
echo "/tr>
tr>
";
//每7天一次换行
if ($i % 2 == 0) $color = "#2ca50c";
else $color = "#9ddb27";
//实现各行换色的效果
}
}
while ($i % 7 != 0) {
//将剩余的空格补完
echo "td bgcolor='#2ca50c'>
/td>
";
$i++;
}
echo "/tr>
";
}
//3、用于用户调整天数
private function chageDate($url="index.php") {
echo "tr>
";
echo "caption>
h1>
".$this->
year."年".$this->
month."月/h1>
/caption>
";
echo "/tr>
";
echo "tr>
";
echo "td>
"."a href='?".$this->
prevYear($this->
year,$this->
month)."'>
".""."/a>
";
echo "td>
"."a href='?".$this->
prevMonth($this->
year,$this->
month)."'>
".""."/a>
";
echo "td colspan='3'>
";
echo 'select οnchange="window.location=\''.$url.'?year=\'+this.options[selectedIndex].value+\'&
month='.$this->
month.'\'">
';
for ($year = 2038;
$year >
= 1970;
$year--) {
$selected = ($year == $this->
year)?"selected":"";
echo 'option '.$selected. ' value="'.$year.'">
'.$year.'/option>
';
//echo 'option '.$selected.' value="'.$year.'">
'.$year.'/option>
';
}
echo "/select>
";
echo 'select name="month" οnchange="window.location=\''.$url.'?year='.$this->
year.'&
month=\'+this.options[selectedIndex].value">
';
for($month=1;
$month = 12;
$month++){
$selected1 = ($month == $this->
month) ? "selected" : "";
echo 'option '.$selected1.' value="'.$month.'">
'.$month.'/option>
';
}
echo '/select>
';
echo "/td>
";
echo "td>
"."a href='?".$this->
nextMonth($this->
year,$this->
month)."'>
".">
>
"."/a>
";
echo "td>
"."a href='?".$this->
nextYear($this->
year,$this->
month)."'>
".">
"."/a>
";
echo "/tr>
";
}
private function prevYear($year, $month) {
//获取上一年的数据
$year--;
if ($year 1970) $year = 1970;
return "year={
$year}
&
month={
$month}
";
}
private function prevMonth($year, $month) {
if ($month == 1) {
$year--;
if ($year 1970) $year = 1970;
$month = 12;
}
else $month--;
return "year={
$year}
&
month={
$month}
";
}
private function nextYear($year, $month) {
//获取上一年的数据
$year++;
if ($year >
2038) $year = 2038;
return "year={
$year}
&
month={
$month}
";
}
private function nextMonth($year, $month) {
if ($month == 12) {
$year++;
if ($year >
2038) $year = 2038;
$month = 1;
}
else $month++;
return "year={
$year}
&
month={
$month}
";
}
}
主页 index.php
!doctype html>
html>
head>
meta charset="utf-8">
title>
日历显示/title>
style>
table {
border:1px solid #050;
margin: 100px auto;
}
th {
width: 30px;
background-color: #0CC;
color: #fff;
height: 30px;
font-size: 20px;
}
#nowd {
color: yellow;
background: #F00;
}
td {
width: 30px;
text-align: center;
height: 25px;
color: #fff;
}
a {
display: block;
width: 35px;
height: 35px;
background: #0F9;
text-decoration: none;
text-align: center;
line-height: 35px;
}
a:hover {
background: #CF0;
color: #fff;
font-size: 20px;
}
/style>
/head>
body>
?php
include "calendar.class.php";
$ca = new Calendar();
$ca->
showCalendar();
?>
/body>
/html>
关于PHP实现一个日历类的内容就介绍到这,本文代码仅供参考,感兴趣的朋友可以了解看看,希望能对大家有帮助,想要了解更多大家可以关注其它的相关文章。
文本转载自脚本之家
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 用PHP怎样创建一个日历类,方法是什么?
本文地址: https://pptw.com/jishu/653086.html
