PHP – Datum berechnen

Mit PHP das Datum von gestern ermitteln:

$date = date('Y-m-d', time() - 86400);

Die aktuelle Zeit nehmen, davon 86400sec abziehen (entspricht 24h) und dann in das gewünschte Datumsformat casten.

Update: Besser geht das Ganze allerdings über folgendes Codesnippet:

$date = '2012-05-11';
date('Y-m-d', strtotime('-1 days', strtotime($date)));

Update 2:
Wenn ihr auf einen Wochentag bspw. 3 Werktage addieren wollt, funktioniert das analog zur oben beschriebenen Funktion:

$date = '2013-09-05';
date('Y-m-d', strtotime('+3 weekdays', strtotime($date)));

Weitere Funktionalitäten zu strtotime() findet ihr hier:
http://www.php.net/manual/de/datetime.formats.relative.php

5 Kommentare

  1. Würde ich nicht so machen, da nicht jeder Tag 24h hat. An Umstellungstagen Sommer/Winterzeit macht das zu bestimmten Zeiten Probleme.

    Besser ist …

    $gestern = mktime(strftime(„%H“, $datum), strftime(„%M“, $datum), strftime(„%S“, $datum), strftime(„%m“, $datum), strftime(„%d“, $datum) – 1, strftime(„%Y“, $datum));

    Und dann halt den Timestamp ausgeben mit …

    echo strftime(„%d.%m.%Y“, $gestern);

  2. Das funktioniert sicher:
    $gestern = date(‚d.m.Y‘,mktime(0,0,0,date(‚m‘),date(‚d‘)-1,date(‚y‘)));
    $morgen = date(‚d.m.Y‘,mktime(0,0,0,date(‚m‘),date(‚d‘)+1,date(‚y‘)));

  3. Was passiert, wenn du auf nen 31.03. bspw. +1 addierst? Ich denke fast, da ist die Variante mit „+1 days“ besser.

Kommentar verfassen