Ankündigung

Einklappen
Keine Ankündigung bisher.

Ausgabe von date() prüfen

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

  • 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.


  • #2
    Glaub ich nicht.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      ä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';

      Kommentar


      • #4
        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.

        Kommentar


        • #5
          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!
          Competence-Center -> Enjoy the Informatrix
          PHProcks!Einsteiger freundliche Tutorials

          Kommentar

          Lädt...
          X