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.
Ändern Sie dies, um das erwartete Format zu erhalten:
$effectiveDate = date('Y-m-d', strtotime("+3 months", strtotime($effectiveDate)));
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
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.
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.)
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>';
}
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;
Folgendes sollte funktionieren, bitte versuchen Sie es:
$effectiveDate = strtotime("+1 months", strtotime(date("y-m-d")));
echo $time = date("y/m/d", $effectiveDate);
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 .
Folgendes sollte funktionieren
$d = strtotime("+1 months",strtotime("2015-05-25"));
echo date("Y-m-d",$d); // This will print **2015-06-25**
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)));