Top
PHP Tutorial – Schritt 12: Datum und Zeit Advanced – RonnyDee´s Blog
fade
2394
post-template-default,single,single-post,postid-2394,single-format-standard,eltd-core-1.1.1,flow child-child-ver-1.0.0,flow-ver-1.3.7,eltd-smooth-scroll,eltd-smooth-page-transitions,ajax,eltd-blog-installed,page-template-blog-standard,eltd-header-standard,eltd-fixed-on-scroll,eltd-default-mobile-header,eltd-sticky-up-mobile-header,eltd-dropdown-default,wpb-js-composer js-comp-ver-5.2.1,vc_responsive

PHP Tutorial – Schritt 12: Datum und Zeit Advanced

Der letzte Beitrag hat sich ja grundlegend mit der PHP Zeitfunktion auseinander gesetzt. Allerdings gibt es noch so einiges bei diesen Thema zu wissen, bzw. zu erlernen. Deshalb beschäftigen wir uns einen weiteren Beitrag mit der PHP Zeitfunktion.

|

Übungsbeispiel Differenz/Countdown

Versuchen wir im ersten Beispiel einfach nochmals die Differenz (nur in Tagen) zu einem gewissen Datum zu ermitteln. Ich nehme als Zieldatum meinen 50. Geburtstag, sprich den 30. Jänner 2029

|

Was brauchen wir dafür?

  • Das heutige Datum
  • Das Datum in der Zukunft

|

|

In Kurzform:

|

Wie du hier sehr schön erkennen kannst, es geht sehr oft, sehr viel einfacher in PHP. Allerdings gewöhnt man sich das erst mit der Zeit an, also nicht gleich verzweifeln. Je besser du am Anfang weißt, was das Ziel ist, desto besser allerdings.

|

Datumsabfrage mit Zusatzinformationen

Oft möchte man auch einmal wissen, welches Datum in 7 Tagen oder x Tagen ist. Noch besser wäre es, wenn wir dazu Zusatzinformationen wie Wochentag oder Kalenderwoche erhalten. Insofern… ein schönes Projekt für uns, oder?

|

Welches Datum haben/hatten wir in/vor x Tagen

|

Welchen Wochentag / Kalenderwoche hatten/haben wir da?

Wir ergänzen das Beispiel oben nun um die Zusatzinformationen Wochentag und Kalenderwoche… Schritt für Schritt

Mit der Zusatzangabe „w“ bekommst du den Wochentag als Zahl zurückgeliefert. Dabei fängt PHP mit Sonntag an zu zählen UND PHP beginnt mit Null (0)!!

|

  • 0 = Sonntag
  • 1 = Montag
  • 2 = Dienstag
  • 3 = Mittwoch
  • 4 = Donnerstag
  • 5 = Freitag
  • 6 = Samstag

|

Damit wir überhaupt einmal den Wochentag als Zahl zurück bekommen ändern wir also unsere echo-Ausgabe:

|

Je nachdem welches Datum du als Quelldatum eingegeben hast und wie viele Tage du in die Vergangenheit/Zukunft rechnest, erhälst du nun neben der Datumsausgabe eine Ziffer zwischen 0 und 6. Also müssen wir PHP lediglich noch mitteilen, dass diese Ziffer gegen ein Wort, nämlich Montag bis Sonntag,ausgetauscht werden soll.

Am einfachsten ginge das mit einem Array. Allerdings haben wir das noch nicht gelernt, deshalb bedienen wir uns eine If-Abfrage bzw. einer Switch-Abfrage:

|

Das ganze Skript sieht nun unbereinigt (also unaufgeräumt) zurzeit so aus:

|

Da wir hier viel unnötigen Code mitschleppen, kürzen wir das ganze etwas ab und unterscheiden mit einer If-Abfrage ob wir die Vergangenheit oder Zukunft abfragen, damit wir auch die Grammatik berücksichtigen. Genau genommen ändern wir diesen Code:

|

In diesen Code:

|

Sprich wir machen aus der ersten echo-Ausgabe eine Variable, die wir dann in einer kurzen If-Anweisung weiterverarbeiten. Ausgehend davon ob die wählbaren Differenztage positiv oder negativ eingegeben sind, wird der Satz in der Vergangenheitsform oder in der Zukunftsform definiert.

|

Noch schnellere Zeit mit strtotime

Was du bist jetzt alles gelernt hast, ist hin und wieder etwas umständlich wenn es doch mal schneller gehen soll. Was wäre also PHP wenn es da nicht wieder den einen oder anderen Trick geben würde?

|

strttotime(), also String to time (Wort zu Zeit) ist so ein Trick den die Profis meist für sich behalten. Dabei erleichtert er das Leben in PHP ungemein. Schauen wir uns doch mal an, was genau mit diesem kleinen Befehl so möglich ist:

|

Wichtig, auch strtotime() wandelt jede Angabe immer in einen UnixTimestamp um. Damit du weißt was die ausgegebenen Sekunden bedeuten, müssen sie mit date() formatiert werden.

|

Bitte, wie immer, unter z.B. http://phpfiddle.org/ einfach mehrfach testen, damit das Prinzip verstanden wird. Es ist dabei lediglich die Zeile 24 zu ändern.

|

So, das wars jetzt aber über Zeit und Datum. Widmen wir uns den nächsten Kapitel: Suchen und Ersetzen

|

photo credit: MattysFlicks via photopin cc

No Comments

Post a Comment