Tach!
Es müssen gar keine Bedingungen geprüft werden, wenn man eine Funktion findet, die 0…9 auf 0, 10…18 auf 1 und 19…23 auf 2 abbildet. Nichts einfacher als das: h → ⎣h / 9.5⎦.
<?php $begruessungen = array('Guten Morgen', 'Guten Tag', 'Guten Abend'); ?> ⋮ <p><?= $begruessungen[floor(date("G") / 9.5)] ?></p>
Nicht immer sind solche Vereinfachungen auch die bessere Variante. Aus den ausformulierten Bedingungen ging intuitiver hervor, was der Code machen sollte, als diese Formel auszudrücken vermag. Die Formel mag zwar clever sein, aber auch schlechte UX.
dedlfix.