欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php简单的日历程序代码

程序员文章站 2023-12-31 09:25:46
...
PHP提供了date()函数,该函数提供了丰富的日期处理功能。现在需要获得的数据有两个,第一个是当月的总天数;第二个是该月的第一天所在星期中的第几天,数字表示0(表示星期天)到6(表示星期六)。

通过date()函数可以很容易获得上面的数据

代码如下 复制代码

$month = $_GET['m']?$_GET['m']:date(‘n’);
$year = $_GET['y']?$_GET['y']:date(‘Y’);

$start_week = date(‘w’,mktime(0,0,0,$month,1,$year));
$day_num = date(‘t’,mktime(0,0,0,$month,1,$year));
$end = false;
?>






for($i = 0; $i{
echo “”;
}

$j=1;

while($j{
echo “

”;
$week = ($start_week+$j-1)%7;

if($week ==6){
echo “nt

n”;
if($j != $day_num)
echo “tntt”;
else $end = true;
}
$j++;
}
while($week%7 != 6)
{
echo “”;
$week++;
}
if(!$end)
echo “n”;
?>

星期日 星期一 星期二 星期三 星期四 星期五 星期六
$j

高级一点类

';
foreach($this->weeks as $title)
{
echo '';
}
echo '';
}

private function showDays($year, $month)
{
$firstDay = mktime(0, 0, 0, $month, 1, $year);
$starDay = date('w', $firstDay);
$days = date('t', $firstDay);

echo '

';
for ($i=0; $i echo '';
}

for ($j=1; $j $i++;
if ($j == date('d')) {
echo '';
} else {
echo '';
}
if ($i % 7 == 0) {
echo '';
}
}

echo '';
}

private function showChangeDate()
{

$url = basename($_SERVER['PHP_SELF']);

echo '';
echo '';
echo '';
echo '';
echo '';
echo '';
echo '';
}

private function preYearUrl($year,$month)
{
$year = ($this->year
return 'year='.$year.'&month='.$month;
}

private function nextYearUrl($year,$month)
{
$year = ($year >= 2038)? 2038 : $year + 1;

return 'year='.$year.'&month='.$month;
}

private function preMonthUrl($year,$month)
{
if ($month == 1) {
$month = 12;
$year = ($year } else {
$month--;
}

return 'year='.$year.'&month='.$month;
}

private function nextMonthUrl($year,$month)
{
if ($month == 12) {
$month = 1;
$year = ($year >= 2038) ? 2038 : $year + 1;
}else{
$month++;
}
return 'year='.$year.'&month='.$month;
}

}
代码如下 复制代码

class Calendar
{
private $year;
private $month;
private $weeks = array('日','一','二','三','四','五','六');

function __construct($options = array()) {
$this->year = date('Y');
$this->month = date('m');

$vars = get_class_vars(get_class($this));
foreach ($options as $key=>$value) {
if (array_key_exists($key, $vars)) {
$this->$key = $value;
}
}
}

function display()
{
echo '

';
$this->showChangeDate();
$this->showWeeks();
$this->showDays($this->year,$this->month);
echo '
';
}

private function showWeeks()
{
echo '
'.$title.'
'.$j.''.$j.'
'.''.'
';

echo '';
echo '';
echo '
'.'>'.''.'>>'.'

调用方法

代码如下 复制代码

$params = array();
if (isset($_GET['year']) && isset($_GET['month'])) {
$params = array(
'year' => $_GET['year'],
'month' => $_GET['month'],
);
}
$params['url'] = 'demo.php';
require_once 'calendar.class.php';
?>



日历demo





$cal = new Calendar($params);
$cal->display();
?>


上一篇:

下一篇: