Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

PHP: Kalendarz

poniedziałek,

PHP: Kalendarz

Generowanie kalendarza w widoku miesiąca

Wykorzystano dwie funkcje prezentowane w poprzednich przepisach.

function cal_monday($year, $month) {
	if(date('w', $tmp = strtotime($year.'-'.$month.'-01')) == 1) {
		return date('Y-m-d', $tmp);
	} else {
		return date('Y-m-d', strtotime('last monday', $tmp));
	}
}

function cal_sunday($year, $month) {
  $d = date('t',strtotime($year.'-'.$month.'-01'));
  if(date('w', $tmp = strtotime($year.'-'.$month.'-'.$d)) == 0) {
	return date('Y-m-d', $tmp);
  } else {
	return date('Y-m-d', strtotime('next sunday', $tmp));
  }
}

$y = 2018;
$m = 12;

$start = cal_monday($y,$m);
$stop  = cal_sunday($y,$m);
$day   = $start;

echo '<table><tr>';

for($i = 0; $day < $stop; $i++) {
	$day = date('Y-m-d', strtotime('+' . $i . ' DAY ' . $start));
	if(!($i%7) && $i) echo '</tr><tr>';
	printf('<td%s>%d</td>', 
		date('n', strtotime($day)) != $m ? ' class="inactive"' : '',
		explode('-',$day)[2]);
}

echo '</tr></table>';

Przykładowy kod CSS:

.inactive{color:#999;}

DEMO

Udział wzięli

echo, for, date, strtotime, if, printf, explode, ternary

Powyższa ramka to odnośniki do właściwych stron dokumentacji języka PHP.

Artykuł: Staże w Hiszpanii

Staże w Hiszpanii

Artykuł: Conformité Européenne

Conformité Européenne

Artykuł: Display Stream Compression

Display Stream Compression

Artykuł: High Dynamic Range

High Dynamic Range

Artykuł: PiP i podobne technologie

PiP i podobne technologie

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły