Heim  >  Artikel  >  Backend-Entwicklung  >  php简单的日历程序代码_PHP教程

php简单的日历程序代码_PHP教程

WBOY
WBOYOriginal
2016-07-20 11:11:131652Durchsuche

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();
            ?>   
       

   

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/444655.htmlTechArticlePHP提供了date()函数,该函数提供了丰富的日期处理功能。现在需要获得的数据有两个,第一个是当月的总天数;第二个是该月的第一天所在...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn