Ankündigung

Einklappen
Keine Ankündigung bisher.

Ausgabe von date() prüfen

Einklappen

Unconfigured Ad Widget

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Julian
    hat ein Thema erstellt Ausgabe von date() prüfen.

    Ausgabe von date() prüfen

    Hallo,
    ich habe eine recht triviale Frage, stehe trotzdem gerade ziemlich auf dem Schlauch.
    Um einen Kalender aufzubauen, lasse ich mir den Wochentag des ersten Tages des entsprechenden Monats ausgeben.
    PHP-Code:
    $erstertag date("w"mktime(000$monat1$jahr)); 
    Ist der erste Tag ein Montag, bekomme ich eine "1". Fällt der erste Tag auf einen Samstag, erhalte ich eine "6". Und jetzt kommt es zum spannenden Sonntag, denn dort erhalte ich dann eine "0".
    Besagte "0" würde ich nun gerne mit einer If-Schleife abfangen. Ein
    PHP-Code:
    if($erstertag == 0
    funktioniert aus, eine mir nicht ersichtlichen Grund, leider nicht!? Selbst wenn die date()-Funktion eine "0" zurückgibt (selbstverständlich überprüft), komme ich nicht in die Schleife rein. Es funktioniert, wenn ich die Variable manuell mit einer "0" fütter, also scheint es sich bei der Rückgabe der date()-Funktion um keine Integer zu handeln?!

    Kann mir jemand weiterhelfen?

    edit: Die Rückgabewerte "1" bis "6" (für Montag bis Samstag) werden im weiteren Script übrigens einwandfrei akzeptiert. Für Berechnungen sowie für weitere Verarbeitung mit Datumsfunktionen.

  • Arne Drews
    antwortet
    Zitat von Colophoniaz
    ähm ist 0 nicht Montag?
    Zitat von PHP.net
    0 (für Sonntag) bis 6 (für Samstag)
    Wobei ich das jetzt nicht geprüft habe, sondern PHP.net vertraue...

    @Julian:
    Auch nicht getestet, aber PHP interpretiert ja auch 0 gerne mal als false.
    Vielleicht doch mal auf '0' prüfen oder explizit per intval() konvertieren?

    Zitat von ChrisB
    *seufz* if-schleife.de
    Den Link find' ich immer wieder klasse!

    Einen Kommentar schreiben:


  • ChrisB
    antwortet
    Zitat von Julian Beitrag anzeigen
    Und jetzt kommt es zum spannenden Sonntag, denn dort erhalte ich dann eine "0".
    Daran ist nichts besonders spannend, denn das ist so definiert.
    Besagte "0" würde ich nun gerne mit einer If-Schleife abfangen.
    *seufz* if-schleife.de

    Ein
    PHP-Code:
    if($erstertag == 0
    funktioniert aus, eine mir nicht ersichtlichen Grund, leider nicht!?
    Dann machst du wohl irgendwas falsch. Was, das lässt sich an einer hingeworfenen Scriptzeile nicht erkennen.

    Es funktioniert, wenn ich die Variable manuell mit einer "0" fütter, also scheint es sich bei der Rückgabe der date()-Funktion um keine Integer zu handeln?!
    Man könnte meine, du kleiner Schlingel hättest heimlich im Handbuch nachgelesen
    Natürlich ist der Rückgabewert von date vom Typ String.

    Aber ich sehe nicht, warum das an der konkreten Stelle problematisch sein sollte - "0" == 0 ergibt aus Sicht von PHP mit seiner automatischen Typkonvertierung immer noch true.

    Einen Kommentar schreiben:


  • Colophoniaz
    antwortet
    ähm ist 0 nicht Montag? weil aktuell krieg ich beim echo von $erstertag ne 3 (mal von der Warning bezüglich Timezone Settings abgesehen)

    0 Montag
    1 Dienstag
    2 Mittwoch
    3 Donnerstag

    riecht für mich nach Arrays und die fangen ja bekanntlich bei 0 an es sei denn man sagt ihnen fang bei eins an oO

    demnach würd ich da nen switch drumlegen falls du wochentage ausgeben willst, wovon ich dank mangelnder info mal ausgehe

    PHP-Code:

    switch($erstertag){

    case 
    0'Montag';
    break;
    /*
    etc,etc,
    */
    default: 'Unbekannter Tag';

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Glaub ich nicht.

    Einen Kommentar schreiben:

Lädt...
X