Top
PHP Tutorial – Schritt 11: Datum und Zeit – RonnyDee´s Blog
fade
2374
post-template-default,single,single-post,postid-2374,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 11: Datum und Zeit

Die meisten Tutorials und Anleitungen gehen nun auf die PHP Dateibehandlung oder auf das E-Mail versenden mittels PHP über. Ich mache das jetzt noch nicht. Denn es ergibt ja keinen Sinn, wenn du mit dem bisherigen KnowHow im PHP eine Datei erstellst und öffnest bzw. deine Werte per E-Mail versendest. Ich finde es ist nun an der Zeit sich der Zeit zu widmen 🙂

|

Datums- und Zeitfunktionen in PHP

PHP kennt auch die Uhrzeit und das Datum. Allerdings holt sich PHP diese Informationen von dem Webserver, auf dem es installiert ist und ausgeführt wird. Das heißt, sollte die Information bei der Ausgabe ganz und gar nicht stimmen, so ist die Einstellung auf dem jeweiligen Server zu prüfen und gegebenenfalls zu korrigieren.

|

Wie holen wir uns die Zeit?

In wirklich 99% aller Anleitungen siehst du dafür diesen Code:

|

Allerdings ist das soweit nicht ganz richtig, denn der einzige Code für die Zeit lautet:

|

Mit diesem Code kannst du nun weiter arbeiten:

|

Was sehe ich da jetzt eigentlich?

Der Befehl „time()“ macht nichts anderes als alle bisher vergangenen Sekunden seit Beginn der Unix-Epoche auszugeben, genannt Unix Timestamp. Die Unix-Epoche startete offiziell am 01. Jänner 1970 um 00h 00min 00sek

|

Formatierung des Unix Timestamps

Da ich leider nicht so gut in Mathematik war und mir schwer tue die vergangenen Sekunden ohne weiteres umzurechnen, lasse ich das mal PHP machen. Dafür gibt es die sogenannte „date()“ Funktion, die bereits viele Ausgabemöglichkeiten besitzt. Genauere Informationen kannst du dir auf der offiziellen PHP Seite holen: http://php.net/manual/de/function.date.php [box type=“info“ width=“100%“ ]Wenn du das unten beigefügte Beispiel testest, so beachte, dass hin und wieder einige Buchstaben groß und einige klein geschrieben sind. Dies hat nämlich Auswirkungen auf die Formatierung der Ausgabe. Ein kleine „y“ ergibt z.B. eine zweistellige Jahreszahl wie „14“ – ein großes „Y“ hingegen ergibt eine vierstellige Jahreszahl wie „2014“[/box]

|

Quizfrage: Warum kann jetzt PHP allerdings stets die aktuelle Uhrzeit und das Datum ausgeben, wenn die Information „time()“ fehlt?

|

Soweit so gut. Wir sind jetzt also in der Lage mit der aktuellen Uhrzeit diverse Ausgaben zu ermitteln. Doch mit der aktuellen Uhrzeit kommt man oft nicht weiter. Immerhin möchte man hin und wieder Differenzen errechnen, Wochentage ermitteln, Kalenderwochen berechnen oder ganz andere Dinge mit Uhrzeit und Datum anstellen.

|

Rechnen mit Datum und Zeit

Um mit Zeit- und Datumsangaben in PHP zu rechnen, empfiehlt es sich stets mit dem jeweiligen UnixTimestamp zu arbeiten. Das heißt konkret, dass man eine Zeitangabe oder eine Datumsangabe in den jeweiligen UnixTimestamp zurückumwandeln muss. Dies geht mit folgendem PHP Befehl:

|

Wobei die Buchstaben in der Klammer für folgende Angaben stellvertretend sind:

  • H (Stunde im 24-Stunden-Format, zweist.)
  • i (Minuten, zweistellig)
  • s (Sekunden, zweistellig)
  • n (Nummer des Monats)
  • j (Tag des Monats)
  • Y (Jahr vierstellig)

Ein kleines Beispiel dafür:

|

Natürlich kannst du die Zeitangabe auch variabel machen:

|

Und wie lange ist es noch bis dahin?

Um die Differenz zwischen heute und der oben erwähnten Zeitangabe zu berechnen, rechnen wir die beiden UnixTimestamps gegeneinander und formatieren das Ergebnis:

|

Und wie lange ist es nun bis dorthin, so dass man es auch versteht?

Wir haben die Differenz nun in Sekunden errechnet. Schön, doch was machen wir damit? Die „date()“-Funktion hilft uns mit den Sekunden in so einer hohen Anzahl nicht weiter. Versuchen wir es deshalb auf kompliziertem Wege:

|

Soviel dazu. Jetzt wissen wir so ungefähr wie lange es bis zu diesem Datum ist. Genau können wir das aber somit nicht sagen. Im Grunde genommen müßten wir nun die errechneten Wochen ausgeben, die Nachkommazahl in Tage errechnen, dessen Nachkommazahl in Stunden und so weiter und so fort… Deshalb betreten wir nun kurz ein Kapitel das wir noch nicht erläutert haben:

|

Funktionen in PHP Mit einer Funktion hat man unter PHP die Möglichkeit entsprechende Berechnungen durchzuführen und so zusammenzufassen, dass man stets nur den Eingangswert bekannt gibt, damit PHP zum Ausgangswert findet. Die Funktion für diese Berechnung sieht folgendermaßen aus:

|

Diese Funktion ist übrigens nicht von mir geschrieben, sondern kann auf dem Blog von H.-Peter Pfeufer unter der Url http://ppfeufer.de/sekunden-in-lesbares-zeitformat-tage-stunden-minuten-umwandeln/ bezogen werden. By the way: Es gibt unzählige bereits nahezu fertige PHP Funktionen im Netz, die man mit dem angeeigneten Wissen relativ leicht an seine Bedürfnisse anpassen kann. Also nicht stets das Rad neu erfinden.

|

Das Ergebnis ist beeindruckend oder? Natürlich werden bei dieser Lösung auch auf andere PHP Methoden (wie z.B. „bcdiv“) zurückgegriffen, aber bei diesem Beispiel kann man schon sehr gut erkennen, wie mächtig PHP ist und was mit einigen Tricks die PHP mitbringt überhaupt möglich ist. Keine Sorge, wir werden uns an dieses Beispiel später noch in aller Ruhe heran arbeiten.

|

Wenn du nun noch etwas Zeit hast, dann würde ich dir meinen nächsten Artikel auch gleich ans Herz legen

|

 

photo credit: Βethan via photopin cc

Post a Comment