2016-08-09 151 views
1

Ich habe 2 Variablen in PHP. Einer erhält das heutige Datum und fügt 1 Monat dazu hinzu. Das funktioniert gut. Der andere soll dieses Datum nehmen und 6 Tage hinzufügen. Aus irgendeinem Grund weigert sich dieser Teil zu arbeiten. Formatiere ich es einfach falsch? Ich bekomme immer 01-06-1970 in meiner Datenbank.Tage zu PHP Variable hinzufügen

Hier ist die Variable, die hier bekommt, ist die Variable, die 6 Tage bis $ renewdate ergänzt (nicht funktioniert)

$latedate = date('Y-m-d', strtotime('+6 days',$renewdate)); 

Antwort

5

heutigen Datum und addiert 1 Monat (funktioniert)

$renewdate = date('Y-m-d', strtotime('+1 month')); 

Zweites Argument von strtotime ist Unix Timestamp. Derzeit ist $renewdate eine Zeichenfolge. Also:

$latedate = date('Y-m-d', strtotime('+6 days', strtotime($renewdate))); 
+0

Dies funktionierte basierend auf meinem Code. Vielen Dank! –

3

PHP 5.2.0 gebracht DateTime, warum bleiben Sie immer noch an alten Funktionen? OOP-Ansatz ist besser!

$dtCreate = DateTime::createFromFormat('Y-m-d H:i:s', '2016-08-02 16:16:02'); 
$dtCreate->add(new DateInterval('P6D')); 

Dies wird 6 days zu Ihrem DateTime Objekt hinzufügen, DateInterval für Details.

Nachdem Sie ein Intervall hinzugefügt, können Sie Ihr Objekt format können wie Sie wollen:

$dtCreate->format('Y-m-d H:i:s'); 

Dies wird 2016-08-08 16:16:02 zurückkehren, wie Sie sehen können, ist es 6 Tage später.

+0

Das sieht nach einer guten Lösung aus, aber ich verstehe nicht, was die Funktionen createFromFormat und P6D tun. Kannst du es kaputt machen? Ich würde diese Methode gerne besser verstehen. –

+0

@SpyderTech Ich habe die Links zum offiziellen PHP-Handbuch bereitgestellt, alles ist dort perfekt erklärt. –