Tach!
date("h")gibt einen String zurück. Das ist ein Problem bei kleiner, größer, etc.intval(date("h"))parst die Stunde zu einem Integer, den Du vergleichen kannst.
Man muss es nicht so kompliziert machen, PHP kann selbständig konvertieren. Zum einen nähme ich G, weil das 24 Stunden ohne führende 0 ist, aber H (mit führender 0) passt auch, weil der Vergleich von '06' (string) und 6 (int) ebenfalls true ergibt. Spricht: Zahlen in Strings sind ziemlich problemlos mit echten Zahlen vergleichbar.
Anders als bei einer literal notierten Integerzahl mit führender 0 wird bei Zahlenwerten in Strings diese führende 0 nicht als Oktalzahl-Indikator gewertet. Deswegen ergibt auch ein date('H') was in der neunten Stunde eines Tages '08' zurückliefert keine stillschweigende Konvertierung zu 0. Ein literales 08 hingegen ist eine ungültige Oktalzahl (wird wie 09 oder 0800 etc. zu 0 konvertiert). Deswegen sollte man führende Nullen lieber weglassen, auch wenn sie damit mit anderen zweistelligen Zahlen untereinander geschrieben vielleicht schöner formatiert aussehen.
dedlfix.