วันศุกร์ที่ 7 กันยายน พ.ศ. 2555

PHP Calendar Class

class Calendar{
    protected $time;
    protected $timezone;
    public $isLeapYear;
    public function __construct($year) {
        $this->timezone = new DateTimeZone('Asia/Bangkok');
        $this->time = DateTime::createFromFormat('Y-n-j', $year.'-1-1', $this->timezone);
        $this->isLeapYear = checkdate(2, 29, $this->time->format('Y'));
    }
    protected function getMonthFirstDay($month){
        $format = sprintf('%d-%d-1',$this->time->format('Y'),$month);
        return DateTime::createFromFormat('Y-n-j', $format, $this->timezone);
    }
    public function getMonthDays($month){
        $interval = DateInterval::createFromDateString('+1day');
        $time = $this->getMonthFirstDay($month);
        $a = array();
        while($time->format('n') == $month){
            $a[] = clone $time;
            $time->add($interval);
        }
        return $a;
    }
    public static function monthName($month){
        $a = array(1=>'มกราคม','กุมภาพันธ์','มีนาคม','เมษายน',
            'พฤษภาคม','มิถุนายน','กรกฎาคม','สิงหาคม','กันยายน'
            ,'ตุลาคม','พฤศจิกายน','ธันวาคม');
        return $a[$month];
    }
    public static function dayName(DateTime $date){
        $a = array('อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์');
        return $a[$date->format('w')];
    }
}

header('Content-type:text/html;charset=utf-8');
#header('Content-type:text/html;charset=tis-620');
$c = new Calendar(2012);
echo '<h1>Calendar 2012</h1>';
foreach(range(1,12) as $month){    
    echo '<h2>',Calendar::monthName($month),'</h2>';
    foreach($c->getMonthDays($month) as $d){
        echo Calendar::dayName($d),' ',$d->format('j'),'<','br/>';
    }
}

ไม่มีความคิดเห็น:

แสดงความคิดเห็น