Ankündigung

Einklappen
Keine Ankündigung bisher.

Letzen Freitag im Montag Januar finden?

Einklappen

Neue Werbung 2019

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

  • Letzen Freitag im Montag Januar finden?

    Hallo zusammen,

    ich habe mich heute hier erst angemeldet und bin in PHP auch noch der totale Rookie. Momentan bin ich gerade dabei mein erstes PHP Buch zu lesen, jedoch habe ich natürlich im Hinterkopf schon den einen oder anderen Gedanken, der mir vermutlich in diesem Anfängerbuch noch nicht gelöst wird. Von daher frage ich hier einfach mal nach.

    Ich möchte auf unserer Vereinshomepage (Fasching / Fasnet) ein Anmeldeformular für Gruppen erstellen, die an unserem Umzug teilnehmen wollen. Unser Umzug ist IMMER am letzten Freitag im Januar. Ich würde von daher gerne die Überschrift dynamisch gestalten, also im Sinne "Anmeldung zum Faschingsumzug 2016", wobei die Zahl 2016 erst am Samstag nach diesem besagten letzten Freitag erscheinen soll. Bis dahin muss - in diesem Fall - 2015 stehen.

    Könnte Ihr mir hier vielleicht ein wenig Codeschnipsel zusammen stellen?

    Vielen Dank

  • #2
    Hallo,

    Unser Umzug ist IMMER am letzten Freitag im Januar
    Schau dir mal die relativen Werte für DateTime an: http://php.net/manual/de/datetime.formats.relative.php

    PHP-Code:
    $tz = new DateTimeZone('Europe/Berlin');

    $dt = new DateTime('last friday of january'$tz); 
    echo 
    $dt->format('Y-m-d'); 
    // 2015-01-30  

    $dt = new DateTime('last friday of january 2015'$tz); 
    echo 
    $dt->format('Y-m-d'); 
    // 2015-01-30  

    $dt = new DateTime('last friday of january 2016'$tz); 
    echo 
    $dt->format('Y-m-d'); 
    // 2016-01-29 
    LG
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Coole Sache

      Wenn ich dann recht überlege, sollte mir ja dieser Schnipsel schon reichen

      PHP-Code:
      <?php
      $tz 
      = new DateTimeZone('Europe/Berlin');
      $dt = new DateTime('last friday of january'$tz); 
      echo 
      $dt->format('d.m.Y '); 
      // 2015-01-30  
      ?>
      Kann man den eigentlich mit einem IF-Else Konstrukt auch die Größe des Datums prüfen? Also wenn der Wert kleiner oder gleich 30.01.aktuellesJahr ist dann schreibe "aktuelles Jahr", ansonsten schreibe "aktuelles Jahr +1"

      Kommentar


      • #4
        Du kannst die DateTime Objekte mit den Standardoperatoren vergleichen

        http://code-bude.net/2012/10/20/datu...chen-so-gehts/
        [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

        Kommentar


        • #5
          Der Artikel ist ansonsten aber ziemlich gruselig.

          Kommentar


          • #6
            Will ich nicht abstreiten, poste mal bessere :P
            [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

            Kommentar


            • #7
              OT:

              Ich habe das halt gesagt, weil da Sachen stehen wie:

              Doch aus PHP-Sicht ist dieses Verhalten korrekt, schließlich wurden ja zwei Strings verglichen und das 2012er Datum hatte definitiv den kleineren/kürzeren String.
              Die Logik bei größer/kleiner funktioniert so nun mal nicht.

              Sicher könnte man das selbst „besser“ machen oder dem Autor eine Korrektur schicken, statt nur zu sagen, dass dort Sachen nicht stimmen. Das wäre nur ein ungleich größerer Aufwand. Umgekehrt ist es aber auch blöd, gar nicht darauf hinzuweisen. Die Wortwahl „ziemlich gruselig“ war vielleicht nicht ganz passend, aber der zitierte Satz ist halt schon eine eher grundlegende Sache. (Dann fehlt da etwa auch noch mindestens eine Padding-Null bei einer Monatsangabe. Das erste Beispiel funktioniert mehr zufällig.) Can’t help it. Will aber niemanden ärgern. Ich finds gut, wenn Leute solche Sachen überhaupt schreiben.

              Kommentar

              Lädt...
              X