Baba: Automatisch den nächsten Termin einfügen

Beitrag lesen

So, die Angabe muss in $EventsExtraordinary gemacht werden. Es beinhaltet ein Array mit Daten inkl. Uhrzeit. Hinzugefügt habe ich die dritte Prüfung.

Auch Änderungen an der ersten Prüfung und Änderungen bei der Formatierung des Events habe ich vorgenommen.

Viel Spass beim php-Lernen :)

<?php  
  
// Test der Serverzeit  
echo "<pre>Server Zeit: ". date("d.m.y H:i:s")."</pre>";  // checken, ob server richtig eingestellt ist  
  
// Einstellungen  
$EventWochentag      = "Thursday"; // muss auf Englisch angegeben werden  
$EventStunde         = 16;          // Angabe der Stunde des Events als Integer, z.B. 16h  
$EventDauer          = 3;           // soviele Stunden soll nicht auf das nächste Meeting hingewiesen werden  
$EventsCanceled      = array("26.07.2012", "15.08.2012");  // Ausschlusstermin mit vierstelliger Jahreszahl!  
$EventsExtraordinary = array("27.07.2012 15:25", "15.08.2012 16:30", "26.08.2012 17:00");  // Zusatztermine mit vierstelliger Jahreszahl und Uhrzeit!  
$EventNextTemp       = null;        // das Datum des potenziellen kommenden Events (vor der Prüfung)  
$EventNext           = null;        // das Datum des kommenden Events  
  
  
// Ein bisschen Algebra /////////////////////////////////////////////////////////  
  
// 1. Finde Datum für nächstes potenzielles Event  
if((date("l") == $EventWochentag) and (time() < (($EventStunde+$EventDauer)*60*60)+strtotime("today"))){  
  
  // Wenn heute ein Event ist, welches aktuell noch läuft (innerhalb $EventDauer), verweise auf dieses.  
  $EventNextTemp = strtotime("today")+($EventStunde*60*60);  // siehe http://de.php.net/manual/de/function.strtotime.php  
  
} else {  
  
  // Andernfalls verweise auf das nächste Event.  
  $EventNextTemp = strtotime("next $EventWochentag")+($EventStunde*60*60);  
  
}  
  
// 2. Prüfung auf nicht stattfindende Events  
while (is_null($EventNext)){  
  
  // Wenn das Event nicht stattfindet (angegeben in $EventCanceled), verweise auf das Nächste.  
  if(in_array(date("d.m.Y",$EventNextTemp), $EventsCanceled)) {  
  
    $EventNextTemp = strtotime("+1 week", $EventNextTemp);  
    continue; // weiter in der Schleife ohne $EventNextTemp zu übernehmen  
  
  }  
  
  // temporäres Event übernehmen  
  $EventNext = $EventNextTemp;  
  
}  
  
// 3. Gibt es ein außerplanmäßiges Treffen, was vor dem nächsten planmäßigen liegt?  
foreach ($EventsExtraordinary as $EventExtraordinary){  
  if((strtotime($EventExtraordinary) > time()) and (strtotime($EventExtraordinary) < $EventNext))  
    $EventNext = strtotime($EventExtraordinary);  
}  
  
// Formatieren des Events  
$EventNext = "am ".date("d.m.y", $EventNext)." um ".date("H:i", $EventNext)." Uhr";  
  
?>  
<h1>Liebe Freunde,</h1>  
<p>das nächste mal Treffen wir uns alle <b><?php echo $EventNext ?></b>. Ich hoffe ihr erscheint zahlreich.</p>  
  
<?php

Beste Hauptstadtgrüße

Beste Hauptstadtgrüße zurück :)

Cheers,
Baba
(aus Neukölln)