php-resource.de

PHP Tutorial: Spielereien mit Zeit und Datum

Das Rechnen mit Datum und Zeit ist nur selten unproblematisch, PHP stellt uns dafür zahlreiche Funktionen zur Verfügung. Wir wollen uns im folgenden ein paar davon ansehen und an Beispielen erproben.

|09.04.2010 | Stephane | 26381 | KAT : PHP | | Kommentare 0


3

3

Gestern, heute, übermorgen oder "the icing on the cake"

Manchmal lohnt es sich doch bis zum Ende weiterzulesen, wir kommen jetzt zu einer der interessantesten Funktionen.

Wir erhalten mit Hilfe von "time()" das Jetzt, mit "date()" und "mktime()" definierte Zeitpunkte und können Zeitangaben fast beliebig formatieren und umwandeln.
Was uns noch fehlt ist ein definiertes Gestern, Heute, Morgen und ein Irgendwann. Natürlich können wir auf der Basis der bekannten Funktionen entsprechende Berechnungen durchführen, aber PHP macht es uns leichter mit der Funktion strtotime() (siehe http://php.net/manual/de/function.strtotime.php).

Eigentlich erzeugt strtotime die Unix-Zeit auf der Basis einer englischen Zeitangabe, also nicht viel neues. Wenig augenscheinlich ist aber die Möglichkeit mit strtotime aus einer Unix-Zeit relative Zeitangabe in der Form heute, morgen oder gestern ableiten zu lassen.

Als erstes sehen wir uns absolute Angaben an, die ausgehend vom Jetzt den jeweiligen Tag an sich liefern, also ohne anhängende Minuten oder Sekunden:

     
    strtotime('today');
    strtotime('tomorrow');
    strtotime('yesterday');
     
    echo date('d.m.y H.i.s',strtotime('tomorrow')),' ist Morgen ';
    

Noch interessanter sind die Angaben für "noon", die uns die Mittagszeit, 12 Uhr und "midnight", die uns den Tag um Mitternacht, also auch wieder ohne anhängende Minuten oder Sekunden liefern.
Diesen Angaben können wir auch eine beliebige Unix-Zeit als zweiten Parameter mitgeben. Von diesem Tag erhalten wir ohne Aufwand die für Datenbanken oftmals relevante Zeit 12:00:00 des Tages und bei "midnight" den Tag an sich.

     
    strtotime('noon');
    strtotime('midnight');
    strtotime('noon',1270113217);
    strtotime('midnight',1270113217);
     
    echo date('d.m.y H.i.s',strtotime('noon',1270113217));
    echo date('d.m.y H.i.s',strtotime('midnight',1270113217));
    

next, last, + und -

Aber das ist noch nicht alles. "strtotime" kennt als Paramter noch weitere Angaben: Sekunden bis zum Jahr können mit einer Angabe wie "next", "last" oder +/-1 bis +/-n verknüpft werden und liefern ausgehend vom Jetzt oder einer angegebenen Unix-Zeit berechnete Zeitangaben in der Vergangenheit oder der Zukunft. Bei der Berechnung von +/-1 bis +/-n können auch mehrere Zeitangaben kombiniert werden.

Spielen sie einfach ein wenig mit den hier angegebenen Beispielen:

     
    echo date('d.m.y H.i.s',strtotime('next day'));
    echo date('d.m.y H.i.s',strtotime('last year'));
     
    echo date('d.m.y H.i.s',strtotime('next day', 1270116000));
    echo date('d.m.y H.i.s',strtotime('last year', 1270116000));
     
    echo date('d.m.y H.i.s',strtotime('+1 minute', 1270116000));
    echo date('d.m.y H.i.s',strtotime('-2 hour', 1270116000));
    echo date('d.m.y H.i.s',strtotime('-1 day'));
    echo date('d.m.y H.i.s',strtotime('-2 days'));
    echo date('d.m.y H.i.s',strtotime('+4 week'));
    echo date('d.m.y H.i.s',strtotime('+4 weeks'));
    echo date('d.m.y H.i.s',strtotime('+1 year'));
    

Und weiter?
Dies war nur eine kleine Einführung, die hoffentlich etwas hilfreich ist. Wer weiter gehen möchte findet unter http://php.net/manual/de/ mit "strftime" und der DateTime-Klasse weitere interessante Aspekte der Arbeit mit der Zeit unter PHP. Oder er fordert einfach einen zweiten Teil als Fortsetzung zu dieser Einführung.

Kommentare oder Verbesserungen sind natürlich immer willkommen!
Vielen Dank!

Navigation -> Seitenanzahl : (3)

  «  1 2 3  
Kommentare zum Tutorial
Tutorial kommentieren
 
Über den Autor
Stephane

Stephane

Status
Premium Mitglied

Beruf
Angestellter

Mitglied seit:
08.04.2010

letzte Aktivität
20.05.2010

 

Tutorial bewerten

Hat Ihnen dieses Tutorial gefallen? Dann bewerten Sie es jetzt! Fünf Sterne bedeutet "Sehr gut", ein Stern "Unzureichend".



 

aktuelle Artikel

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Neu | Berni

Wissensbestand in Unternehmen

Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Neu | Berni