Nächste Version
//Timezone!!
date_default_timezone_set('Europe/Berlin');
function Kalender_Termine($mysqli, $datum) {
$stmt = $mysqli->prepare("SELECT id, kalenderID, datum
FROM kalender_termine WHERE datum=?");
$stmt->bind_param("s", $datum);
$stmt->execute();
$stmt->bind_result($id, $kalenderID, $datum);
$stmt->store_result();
if($stmt->num_rows() > 0) {
while ($stmt->fetch()){
$Kalender_Termine[] = array(
'id' => $id,
'kalenderID' => $kalenderID,
'datum' => $datum
);
}
return $Kalender_Termine;
}
}
// Vor und Zurück
if (isset($_GET['ym'])) {
$ym = $_GET['ym'];
} else {
// Aktueller Monat
$ym = date('Y-m');
}
$timestamp = strtotime($ym."-01");
if ($timestamp === false) {
$timestamp = time();
}
// Heute ermitteln
$today = date('Y-m-j', time());
// H3 Title
$html_title = date('Y / m', $timestamp);
// Prev & Next / Monat Link
$prev = date('Y-m', mktime(0, 0, 0, date('m', $timestamp)-1, 1, date('Y', $timestamp)));
$next = date('Y-m', mktime(0, 0, 0, date('m', $timestamp)+1, 1, date('Y', $timestamp)));
// Anzahl der Tage ermitteln
$day_count = date('t', $timestamp);
// 0:So 1:Mo 2:Di usw...
$str = date('w', mktime(0, 0, 0, date('m', $timestamp), 0, date('Y', $timestamp)));
// Kalender zusammenbauen!!
$weeks = array();
$week = '';
// Leer Zeilen hinzufügen
$week .= str_repeat('<td></td>', $str);
for ( $day = 1; $day <= $day_count; $day++, $str++) {
$date = $ym.'-'.$day;
if ($today == $date) {
$week .= '<td class="today">'.$day;
} else {
$week .= '<td>'.$day;
}
$datumTermine = Kalender_Termine($mysqli, $date);
if($datumTermine > 0) {
foreach($datumTermine as $array){
$week .= '<br><br>';
$week .= $array['kalenderID'];
}
}
$week .= '</td>';
// Ende der Woche bzw. Ende des Monats
if ($str % 7 == 6 || $day == $day_count) {
if($day == $day_count) {
// Zelle hinzufügen
$week .= str_repeat('<td></td>', 6 - ($str % 7));
}
$weeks[] = '<tr>'.$week.'</tr>';
// Neue Woche
$week = '';
}
}
Was sagt ihr zu meinem Aufbau? Ich muss dazu sage es ist das erste mal, dass ich so etwas umsetze.
Eine letzte Frage, wenn ein Termin über mehrere Tage geht, wie schaffe ich es dann wie auf dem Google Kalender zu sehen durchgehend etwas zu markieren und nur auf dem erten Feld die Bezeichnung zu schreiben oder ist dieses vielleicht gar nicht so vorteilhaft?