it-swarm.com.de

Hinzufügen von drei Monaten zu einem Datum in PHP

Ich habe eine Variable namens $effectiveDate mit dem Datum 2012-03-26 .

Ich versuche, drei Monate zu diesem Datum hinzuzufügen, und bin dabei nicht erfolgreich gewesen.

Folgendes habe ich ausprobiert:

$effectiveDate = strtotime("+3 months", strtotime($effectiveDate));

und 

$effectiveDate = strtotime(date("Y-m-d", strtotime($effectiveDate)) . "+3 months");

Was mache ich falsch? Kein Stück Code hat funktioniert.

64
user979331

Ändern Sie dies, um das erwartete Format zu erhalten:

$effectiveDate = date('Y-m-d', strtotime("+3 months", strtotime($effectiveDate)));
148
Tchoupi

Ich vermute, mit "nicht funktioniert" meinen Sie, dass Sie einen Zeitstempel anstelle des formatierten Datums erhalten, weil Sie es richtig gemacht haben:

$effectiveDate = strtotime("+3 months", strtotime($effectiveDate)); // returns timestamp
echo date('Y-m-d',$effectiveDate); // formatted version
5
Nick

Sie müssen das Datum in einen lesbaren Wert umwandeln. Sie können strftime () oder date () verwenden.

Versuche dies:

$effectiveDate = strtotime("+3 months", strtotime($effectiveDate));
$effectiveDate = strftime ( '%Y-%m-%d' , $effectiveDate );
echo $effectiveDate;

Das sollte funktionieren. Ich mag es, strftime besser zu verwenden, da es für die Lokalisierung verwendet werden kann, die Sie vielleicht ausprobieren möchten.

2
JohnnyQ

Die Antwort von Tchoupi kann etwas weniger ausführlich gemacht werden, indem das Argument für strtotime () wie folgt verkettet wird:

$effectiveDate = date('Y-m-d', strtotime($effectiveDate . "+3 months") );

(Dies hängt von magischen Implementierungsdetails ab, aber Sie können sie sich immer ansehen, wenn Sie zu Recht misstrauisch sind.)

2
gleech

Fügen Sie nte Tage, Monate und Jahre hinzu

$n = 2;
for ($i = 0; $i <= $n; $i++){
    $d = strtotime("$i days");
    $x = strtotime("$i month");
    $y = strtotime("$i year");
    echo "Dates : ".$dates = date('d M Y', "+$d days");
    echo "<br>";
    echo "Months : ".$months = date('M Y', "+$x months");
    echo '<br>';
    echo "Years : ".$years = date('Y', "+$y years");
    echo '<br>';
}
1
Rahul Gandhi

Diese Antwort ist nicht genau auf diese Frage. Aber ich werde dies hinzufügen, da diese Frage immer noch durchsucht werden kann, wie der Zeitraum ab Datum hinzugefügt/abgezogen wird.

$date = new DateTime('now');
$date->modify('+3 month'); // or you can use '-90 day' for deduct
$date = $date->format('Y-m-d h:i:s');
echo $date;
1
Sadee

Folgendes sollte funktionieren, bitte versuchen Sie es:

$effectiveDate = strtotime("+1 months", strtotime(date("y-m-d")));
echo $time = date("y/m/d", $effectiveDate);
1
Dipak kukadiya

Sie können die simpleDate-Klasse aus PHP Simple Libraries verwenden:

include('../code/simpleDate.php');
$date = new simpleDate();
echo $date->set($effectiveDate)->addMonth(3)->get();

Schauen Sie sich die Tutorials der library hier an .

0
isa

Folgendes sollte funktionieren

$d = strtotime("+1 months",strtotime("2015-05-25"));
echo   date("Y-m-d",$d); // This will print **2015-06-25** 
0
Ricky

Folgendes sollte funktionieren, aber Sie müssen möglicherweise das Format ändern:

echo date('l F jS, Y (m-d-Y)', strtotime('+3 months', strtotime($DateToAdjust)));
0
Brendon Dugan