Peter: Anfängerfrage zur Zeitfunktion

Hallo,
so jetzt traue ich mich auch mal mit einer absoluten Anfängerfrage...

Wollte einen kleinen Gimmick auf meiner Seite einbauen, für den ich die Zeitfunktion benötigte. Im Prinzip ganz banal, wenn der Besucher zwischen 20:00 Uhr und 4:00 Uhr eine Funktion aufruft soll er eine Nachricht angezeigt bekommen, wenn er zwischen 04:00 Uhr und 08:00 Uhr das gleiche macht eine andere Nachricht
und zwischen 8 und 20 Uhr wird nur die Uhrzeit angezeigt.

Was ich nicht hinbekomme ist der Vergleich.
Habe
$uhr=date('H:i:s');
um die aktuelle Zeit zu bekommen
aber wie schreibe ich dann die if Anweisung

if($uhr>20:00:00 && $uhr<04:00:00)

funktioniert nicht, da der Vergleichsoperator falsch formatiert ist...

Wäre nett wenn ihr mir kurz helfen könnt.
Möchte da nich zuviel Zeit investieren, da es wirklich nur ein kleiner Insider Gag ist. Wenn es nicht geht oder zu aufwendig ist, lasse ich es halt bleiben.

Danke und Grüße,
Peter

  1. Ein string muss in "" sein. Demnach:

    if($uhr>"20:00:00" && $uhr<"04:00:00")

    mfg

    1. Hallo Steffen,

      Ein string muss in "" sein. Demnach:

      <anmerkung type="haarespaltend">
          Ein String kann in "" stehen, er kann aber auch in '' stehen :-)
      </anmerkung>

      if($uhr>"20:00:00" && $uhr<"04:00:00")

      und wann ist diese Bedingung Deiner Meinung nach erfüllt?
      Ich übersetze ein klein wenig frei:

      Wenn etwas größer ist als 20 Uhr _und_ kleiner als 04 Uhr.
      Glaub' mir: Zeichenkettenvergleiche wissen nichts vom 24-Stunden-Tag. *fg*

      Freundliche Grüße

      Vinzenz

      1. Hi Vinzenz,

        das hab ich mir gar nicht angeschaut *grins*. Das viel mir nur auf und mir war eigentlich klar, wieso das nicht gehen kann :P

        Aber ich sehs ja ein *g*

        LG steffen

  2. hi,

    Was ich nicht hinbekomme ist der Vergleich.
    Habe
    $uhr=date('H:i:s');
    um die aktuelle Zeit zu bekommen
    aber wie schreibe ich dann die if Anweisung

    Du willst doch nur die Stunden vergleichen - warum nimmst du dann nicht auch nur die Stunden?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  3. Hallo Peter,

    so jetzt traue ich mich auch mal mit einer absoluten Anfängerfrage...

    so ganz anfängerhaft ist Deine Frage doch gar nicht. Warum solltest Du Dir das Fragen verkneifen?

    wenn der Besucher zwischen 20:00 Uhr und 4:00 Uhr eine Funktion aufruft soll er eine Nachricht angezeigt bekommen, wenn er zwischen 04:00 Uhr und 08:00 Uhr das gleiche macht eine andere Nachricht
    und zwischen 8 und 20 Uhr wird nur die Uhrzeit angezeigt.

    Was ist also für die Bestimmung der Ausgabe relevant? Richtig, nur der Stundenanteil, also besorge Dir diesen. Das solltest Du einfach hinbekommen.

    Nächster Punkt: Die Rückgabe ist eine Zeichenkette. Vergleiche von Zeichenketten sind etwas von Vergleichen von Zahlen verschieden. Doch da Du führende Nullen hast, stellt das kein Problem dar:

    if($uhr>20 && $uhr<04)

    Zeichenketten sind in Anführungszeichen einzuschließen, dazu ist hier der logische Verknüpfungsoperator falsch gewählt.

    In Pseudocode

    Wenn der Stundenwert mindestens '20' beträgt oder kleiner ist als '04'
       Gebe Nachtmeldung aus
    Sonst Wenn der Stundenwert kleiner ist als '08'
       Gebe die Morgenmeldung aus
    Sonst
       Gebe die Tagmeldung aus
    Ende Wenn

    Wenn Du es hinbekommst
       Gib eine freundliche Rückmeldung
    Sonst
       Frage nochmals nach
    Ende Wenn

    Freundliche Grüße und viel Erfolg!

    Vinzenz