2009-05-06 5 views
23

In meinem PHP-Code habe ich ein Datum in meiner Variablen "$ geposteteDate".
Jetzt möchte ich das Datum nach 7 Tagen, 15 Tagen, einem Monat und 2 Monaten erhalten haben.Wie kann ich ein Datum nach 15 Tagen/1 Monat in PHP bekommen?

Welche Datumsfunktion sollte ich verwenden?

Das Ausgabedatum sollte im US-Format sein.

+2

Der Begriff, den Sie zu Google wollen ist "date Arithmetik". –

Antwort

17

versuchen, diese

$date = date("Y-m-d");// current date 

$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 day"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 week"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +2 week"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 month"); 
$date = strtotime(date("Y-m-d", strtotime($date)) . " +30 days"); 
2

Was ist das Eingabeformat überhaupt?

1) Wenn Ihr Datum ein Array aus Jahr, Monat und Tag ist, dann können Sie mktime (0, 0, 0, $ Monat, $ Tag + 15, $ Jahr) oder mktime (0, 0, 0, $ Monat + 1, $ Tag, $ Jahr). Beachten Sie, dass mktime eine intelligente Funktion ist, die Out-of-Bounds-Werte korrekt behandelt, sodass mktime (0, 0, 0, 13, 33, 2008) (das ist Monat 13, Tag 33 von 2008) den Timestamp für Februar zurückgibt , 2, 2009.

2) Wenn Ihr Datum ein Zeitstempel ist, dann fügen Sie einfach 15 * SECONDS_IN_A_DAY hinzu und geben dann das mit Datum aus (/ * beliebiges Format * /, $ payedDate). Wenn Sie einen Monat 30 Tage hinzufügen müssen, funktioniert das natürlich nicht immer, also können Sie zuerst den Zeitstempel in Monat, Tag und Jahr umwandeln (mit der Funktion date()) und dann (1) verwenden.

3) Wenn Ihr Datum eine Zeichenkette ist, analysieren Sie es zuerst, zum Beispiel mit strtotime(), dann tun Sie, was Sie wollen.

13

Seit PHP 5.2.0 die DateTime Build in der Klasse ist verfügbar

$date = new DateTime($postedDate); 

$date->modify('+1 day'); 

echo $date->format('Y-m-d'); 

http://php.net/manual/en/class.datetime.php

+0

Vielen Dank. Es löst mein Problem in Sekunden. danke nochmal –

+0

Ich bevorzuge immer diese Lösung über 'strtotime' Option. – Peon

3

Dies ist sehr einfach; versuchen Sie dies:

$date = "2013-06-12"; // date you want to upgade 

echo $date = date("Y-m-d", strtotime($date ." +1 day")); 
9
$date=strtotime(date('Y-m-d')); // if today :2013-05-23 

$newDate = date('Y-m-d',strtotime('+15 days',$date)); 

echo $newDate; //after15 days :2013-06-07 

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

echo $newDate; // after 1 month :2013-06-23 
Verwandte Themen