month == 12){ $this->nMonth = 1; $this->nYear = $this->year + 1; } else { $this->nMonth = $this->month + 1; $this->nYear = $this->year; } $this->nTimestamp = mktime(0,0,0,$this->nMonth,1,$this->nYear); } private function setPrev(){ if($this->month == 1){ $this->pMonth = 12; $this->pYear = $this->year - 1; } else { $this->pMonth = $this->month - 1; $this->pYear = $this->year; } $this->pTimestamp = mktime(0,0,0,$this->pMonth,1,$this->pYear); } private function getFirstDay(){ return date("w",mktime(0,0,0,$this->month,1,$this->year)); } public function __construct($timestamp){ $this->timestamp = $timestamp; $this->month = date("n",$this->timestamp); $this->year = date("Y",$this->timestamp); $this->setNext(); $this->setPrev(); $this->printCalendar(); } public function printCalendar(){ $this->build = ''; $this->build .= ''; $this->build .= ''; $this->build .= ''; $this->build .= ''; $this->build .= ''; $this->build .= ''; $this->build .= ''; $this->build .= ''; $this->build .= ''; $this->build .= ''; $this->build .= ''; $this->build .= ''; $this->build .= ''; $this->build .= ''; $this->build .= ''; $this->build .= ''; $this->build .= ''; $this->build .= ''; $this->build .= ''; $this->build .= ''; $this->build .= ''; //first row $this->firstDay = $this->getFirstDay(); $prevMonthDays = date("t",$this->pTimestamp); $start = $prevMonthDays - $this->firstDay; $totalDays = date("t",$this->timestamp); $genCounter = 1; for($start;$start<$prevMonthDays;$start++){ $this->build .= ''; $genCounter++; } $today = mktime(0,0,0,date("n"),date("j"),date("Y"));; for($d=1;$d<=$totalDays;$d++){ if(mktime(0,0,0,$this->month,$d,$this->year) == $today){ $this->build .= ''; } else { $this->build .= ''; } if($genCounter % 7 == 0 && $d != $totalDays){ $this->build .= ''; } $genCounter++; } $start = 1; $genCounter--; while($genCounter % 7 != 0){ $this->build .= ''; $start++; $genCounter++; } $this->build .= ''; $this->build .= ''; $this->build .= '
'.date("F Y",$this->timestamp).'
SMTWTFS
pTimestamp).'" colspan="3" id="prev">« '.date("M",$this->pTimestamp).' nTimestamp).'" colspan="3" id="next">'.date("M",$this->nTimestamp).' »
'.($start + 1).''.$d.''.$d.'
'.$start.'
'; echo $this->build; } } ?>