Hallo,
vielen lieben Dank für deine mega ausführliche Erklärung. Leider scheint mir diese doch sehr kompliziert zu sein. Ich denke, ich bekomme dieses so nicht umgesetzt. Sehr schade, ich dacht es gibt eine einfachere Möglichkeit.
Für den Fall "nach Bedarf" brauchst Du einen Sonderfall, wenn jemand bedarfsweise da ist, dann bleibt das wohl bedarfsweise, egal wie viele Termine schon sind, oder?
Dieses ist wirklich ein Sonderfall und sollte auch nicht oft vorkommen. In diesem Fall sollte gar nichts passieren und nach Bedarf einfach stehen bleiben.
Wie dein Beispiel 1 zeigt, ist es durchaus möglich, dass ein verplanter Zeitraum übe die reguläre Anwesenheitszeit hinausgeht. Macht aber nichts.
Das sind keine reine Arbeitszeiten, in dieser Zeit würde mir dieser User / Mitarbeiter einfach zur Verfügung stehen, es sind alles freiberufliche Menschen, die können arbeiten wann und wie lange sie wollen. Nur in dieser Zeit sind diese geblockt.
.... der MA könnte ja geplant von 9-12 und 18-21 Uhr da sein)
In meinem Fall nicht. Es gibt immer nur ein von - bis pro Tag. Daher kann man diesen Fall derzeit ausschließen.
Man sollte erwarten, dass die verplanten Zeiträume des Mitarbeiters sich nicht überschneiden.
Die können sich überschneiden was aber für die Darstellung egal sein sollte, denn er ist ja eh vom vorherigen Termin noch nicht da. Überscheiden können sich z.B. Termine wenn es eine Abholung gibt die von 10:00 - 14:00 Uhr geht, in dieser Zeit z.B. noch ein Aufbau am gleichen Ort von 12:30 - 13:00 Uhr gibt. In diesem Fall würden sich beide Termine überlappen aber vom ersten in diesem Fall den längeren abgedeckt ist. Wenn der zweite Termin von 12:30 Uhr - 16:00 Uhr gehen würde, dann wäre der Start Termin 1, und das Ende von Termin 2. Aber in der Regel passiert dieses nicht.
<?php
$w_prefix = ARRAY('so', 'mo', 'di', 'mi', 'do', 'fr', 'sa')[date("w", $zeit)];
$von = $arrayUserAktiv["{$w_prefix}_von"];
$bis = $arrayUserAktiv["{$w_prefix}_bis"];
if ($von != "")
{
echo "$von Uhr bis $bis Uhr";
}
else
{
echo "nach Bedarf";
}
// oder statt if:
echo $von == "" ? "nach Bedarf" : "$von Uhr bis $bis Uhr";
?>
Wow, so viel kurzer und es funktioniert. Wahnsinn was alles möglich ist. Was ich nicht verstehe ist {$w_prefix}_von, was machen die {} Klammern und warum _von mein Feld heißt doch eigentlich komplett anderes.