Einen Kalender mit reinen Php erstellen
Code
<?php
$trans[1] = 'Januar';
$trans[2] = 'Februar';
$trans[3] = 'März';
$trans[4] = 'April';
$trans[5] = 'Mai';
$trans[6] = 'Juni';
$trans[7] = 'Juli';
$trans[8] = 'August';
$trans[9] = 'September';
$trans[10] = 'Oktober';
$trans[11] = 'November';
$trans[12] = 'Dezember';
$html = '';
for ($jahr = 2022; $jahr < 2027; $jahr ++) {
$feiertage = array (
array(1,1),
array ((date ("d", easter_date($jahr)) - 2), date ("m", easter_date($jahr))),
array ((date ("d", easter_date($jahr)) + 1), date ("m", easter_date($jahr))),
array (date ("d", easter_date($jahr) + (60 * 60 * 24 * 39)),date ("m", easter_date($jahr) + (60 * 60 * 24 * 39))),
array (date ("d", easter_date($jahr) + (60 * 60 * 24 * 50)),date ("m", easter_date($jahr) + (60 * 60 * 24 * 50))),
array (date ("d", easter_date($jahr) + (60 * 60 * 24 * 60)),date ("m", easter_date($jahr) + (60 * 60 * 24 * 60))),
array (1,5),
array (3, 10),
array (1, 11),
array (25, 12),
array (26, 12),
array (31, 12)
);
$html .= '<br><table border="0" width="860" align="center">'."\n";
$line = '"'.'Monat'.'"'.';"Mo";"Di";"Mi";"Do";"Fr";"Sa";"So"'."\n";;
for ($monat = 1 ; $monat < 13; $monat++)
{
$timestamp = mktime(0, 0, 0, $monat, 1, $jahr);
$tag = 1;
$wochentag = 1;
$monatsnamen = $trans[$monat];
if (($monat - 1) % 4 == 0) $html .= '<tr>';
$html .= '<td valign="top">'."\n";
$html .= "\t".'<table align="center" cellpadding="0" cellspacing="0" width="200" border="1" frame="box" rules="all" bordercolor="#000">'."\n";
$html .= "\t\t".'<tr>'."\n";
$html .= "\t\t\t".'<td colspan="7" style="padding-left: 3px;">'.$monatsnamen.' '.$jahr.'</td>'."\n";
$html .= "\t\t".'</tr>'."\n";
$html .= "\t\t".'<tr>'."\n";
$html .= "\t\t\t".'<td valign="top" align="right" style="padding-right: 3px;">Mo</td>'."\n";
$html .= "\t\t\t".'<td valign="top" align="right" style="padding-right: 3px;">Di</td>'."\n";
$html .= "\t\t\t".'<td valign="top" align="right" style="padding-right: 3px;">Mi</td>'."\n";
$html .= "\t\t\t".'<td valign="top" align="right" style="padding-right: 3px;">Do</td>'."\n";
$html .= "\t\t\t".'<td valign="top" align="right" style="padding-right: 3px;">Fr</td>'."\n";
$html .= "\t\t\t".'<td valign="top" align="right" style="padding-right: 3px;">Sa</td>'."\n";
$html .= "\t\t\t".'<td valign="top" align="right" style="padding-right: 3px;">So</td>'."\n";
$html .= "\t\t".'<tr>'."\n";
$line .= '"'.$monatsnamen.'"'.';"Mo";"Di";"Mi";"Do";"Fr";"Sa";"So"'."\n";;
$line .= '"'.$monatsnamen.'"';
$anfang = date('w',$timestamp);
if ($anfang == 0) $anfang = 7;
for ($i=0; $i < $anfang - 1; $i++)
{
$html .= "\t\t\t".'<td> </td>'."\n";
$wochentag++;
$line .= ';'.'""';
}
while (checkdate($monat, $tag, $jahr))
{
$html .= "\t\t\t".'<td valign="top" align="right" style="padding-right: 3px;">';
$line .= ';'.'"';
if ($wochentag % 7 == 0)
{
$html .= '<b style="color: #f00;">';
$line .= '<B>';
}
else
{
for ($i = 0; $i < sizeof ($feiertage);$i++)
{
if ($tag == $feiertage[$i][0] && $monat == $feiertage[$i][1])
{
$html .= '<b style="color: #f00;">';
$line .= '<B>';
}
}
}
$line .= $tag;
$html .= $tag;
if ($wochentag % 7 == 0)
{
$html .= '</b>';
}
else
{
for ($i = 0; $i < sizeof ($feiertage);$i++)
{
if ($tag == $feiertage[$i][0] && $monat == $feiertage[$i][1])
{
$html .= '<b style="color: #f00;">';
}
}
}
$html .= '</td>'."\n";
$line .= '"';
if ($wochentag % 7 == 0)
{
$html .= "\t\t".'</tr>'."\n";
$html .= "\t\t".'<tr>'."\n";
if ($wochentag < 32) $line .= "\n".'"'.$monatsnamen.'"';
}
$tag++;
$timestamp = $timestamp + 1;
$wochentag++;
}
$line .= "\n";
$html .= "\t\t".'</tr>'."\n";
$html .= "\t".'</table>';
$html .= '<td>'."\n";
if ($monat % 4 == 0) $html .= '</tr>'."\n";
}
$html .= '</table>';
}
echo $html;
?>