Sorry.
Ich habe die Frage falsch formuliert, eigentlich sollte sie heißenWenn ich eine Funktion nur ausführen will, wenn das php-Script selber zur vollen 5. Minute einer Stunde läuft.
Deshalb frage ich nochmal, ob meine Bedingung das ausdrückt.
Im Kern schon. Aber der bedingte Teil Deines Skriptes wird halt auch ausgeführt wenn das Skript um 11:55:01.000 und um 11:55:01.003, ..., 11:55:59.9999997 auf das
if($date->format('i') %5 == 0) {
stößt. Das heisst, das Zeug wird womöglich hunderte Mal ausgeführt, statt nur einmal. Kommt im letzteren Falle noch ein
if($date->format('i') %5 == 0) {
...
if($date->format('i') %10 == 0) {
hinzu, dann kann es passieren, dass um 11:50:59.9999997 auf volle 5 Minuten erkannt wird, die zweite Abfrage dann - wegen des Zeitablaufes - aber um 11:51:00.000001 negativ beantwortet wird.
Und es ist, neben den obigen und regelmäßig unerwünschten Unwägbarkeiten, gerade Deine Frage, die vermuten lässt, dass Du ein insgesamt ungeeignetes Vorgehen gewählt hast.
Die Frage beleibt stehen: Was willst du also erreichen, was kann Dein System? Oder ist das geheim? (Ich frage das jetzt zum dritten Male...)