Wie finde ich heraus, welches Datum vor 5 Tagen war?

Lesezeit: 2 Minuten

Nun, das Folgende gibt zurück, welches Datum vor 5 Tagen war:

$days_ago = date('Y-m-d', mktime(0, 0, 0, date("m") , date("d") - 5, date("Y")));

Aber, wie finde ich heraus, was vor 5 Tagen aus war jedes Datumnicht nur heute?

Zum Beispiel: Was war 5 Tage vor dem 02.12.2008?

Ich denke, ein lesbarer Weg, dies zu tun, ist:

$days_ago = date('Y-m-d', strtotime('-5 days', strtotime('2008-12-02')));

  • Ich denke, das Datum sollte ein Parameter sein, wie $dateNow = (new \DateTime())->format(‘dm-Y’); $daysAgo = date(‘dm-Y’, strtotime(‘-5 days’, strtotime($dateNow)));

    – Zitrone

    15. August 2014 um 19:59 Uhr

  • $n5_daysAgo = date(‘Ym-d’, strtotime(‘-5 days’, time())); @Limon Ich denke, es ist besser

    – Witali Djatlow

    27. Januar 2016 um 18:00 Uhr


  • Da strtotime den zweiten Standardparameter hat time(), $n5_daysAgo = date('Y-m-d', strtotime('-5 days')); würde für saubereren Code ausreichen

    – HendraWD

    4. November 2016 um 9:13 Uhr

Finden Sie heraus, was das Datum vor 5 Tagen von heute in PHP war

$date = strtotime(date("Y-m-d", strtotime("-5 day")));

Finden Sie heraus, was das Datum vor n Tagen von heute in PHP war

$date = strtotime(date("Y-m-d", strtotime("-n day")));

  • Es ist seltsam und völlig unnötig, eine strtotime() an einem Date() auszuführen

    – vrijdenker

    28. Februar 2020 um 12:42 Uhr

  • Ich denke, das ‘strtotime() on date()’ soll die Zeit auf 12 Uhr setzen, anstatt auf now()

    – Samweis

    29. April 2020 um 3:19 Uhr

Vor 5 Tagen ab einem bestimmten Datum:

$date = new DateTime('2008-12-02');
$date->sub(new DateInterval('P5D'));
echo $date->format('Y-m-d') . "\n";

define('SECONDS_PER_DAY', 86400);
$days_ago = date('Y-m-d', time() - 5 * SECONDS_PER_DAY);

Ansonsten können Sie verwenden strtotime für jedes Datum:

$days_ago = date('Y-m-d', strtotime('January 18, 2034') - 5 * SECONDS_PER_DAY);

Oder, wie Sie es gewohnt sind, mktime:

$days_ago = date('Y-m-d', mktime(0, 0, 0, 12, 2, 2008) - 5 * SECONDS_PER_DAY);

Nun, du verstehst es. Der Schlüssel ist, genügend Sekunden aus dem Zeitstempel zu entfernen.

Versuche dies

$date = date("Y-m-d", strtotime("-5 day"));

Tun Sie dies einfach … hoffe, es funktioniert

$fifteendaysago = date_create('15 days ago');
echo date_format($fifteendaysago, 'Y-m-d');

Benutzer-Avatar
Dennis Williamson

Wenn Sie eine Methode wünschen, bei der Sie den Algorithmus kennen, oder die in der vorherigen Antwort erwähnten Funktionen nicht verfügbar sind: Konvertieren Sie das Datum in die Julianische Tageszahl (was eine Möglichkeit ist, Tage ab dem 1. Januar 4713 v. Chr. Zu zählen), und subtrahieren Sie dann fünf, dann zurück zum Kalenderdatum (Jahr, Monat, Tag). Quellen der Algorithmen für die beiden Konvertierungen sind Abschnitt 9 von http://www.hermetic.ch/cal_stud/jdn.htm oder http://en.wikipedia.org/wiki/Julian_day

1345790cookie-checkWie finde ich heraus, welches Datum vor 5 Tagen war?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy