Ich versuche, ein Datum zu erhalten, das ein Jahr nach dem von mir angegebenen Datum liegt.
Mein Code sieht folgendermaßen aus:
$futureDate=date('Y-m-d', strtotime('+one year', $startDate));
Es wird das falsche Datum zurückgegeben. Irgendwelche Ideen warum?
Antworten:
Verwenden Sie Folgendes, um dem heutigen Datum ein Jahr hinzuzufügen:
$oneYearOn = date('Y-m-d',strtotime(date("Y-m-d", mktime()) . " + 365 day"));
Für die anderen Beispiele müssen Sie $ StartingDate mit einem Zeitstempelwert initialisieren, zum Beispiel:
$StartingDate = mktime(); // todays date as a timestamp
Versuche dies
$newEndingDate = date("Y-m-d", strtotime(date("Y-m-d", strtotime($StaringDate)) . " + 365 day"));
oder
$newEndingDate = date("Y-m-d", strtotime(date("Y-m-d", strtotime($StaringDate)) . " + 1 year"));
quelle
$futureDate=date('Y-m-d', strtotime('+1 year'));
$ futureDate ist in einem Jahr!
$futureDate=date('Y-m-d', strtotime('+1 year', strtotime($startDate)) );
$ futureDate ist ein Jahr ab $ startDate!
quelle
$futureDate=date('Y-m-d',strtotime('+1 year',$startDate));
wie unten erwähnt K Prime.Versuchen:
$futureDate=date('Y-m-d',strtotime('+1 year',$startDate));
quelle
,
,.
und es hat funktioniertdate("Y-m-d",strtotime('+1 year '.$startDate))
.// Declare a variable for this year $this_year = date("Y"); // Add 1 to the variable $next_year = $this_year + 1; $year_after = $this_year + 2; // Check your code echo "This year is "; echo $this_year; echo "<br />"; echo "Next year is "; echo $next_year; echo "<br />"; echo "The year after that is "; echo $year_after;
quelle
hatte gerade das gleiche Problem, aber dies war die einfachste Lösung:
<?php (date('Y')+1).date('-m-d'); ?>
quelle
$next_year = (date('Y')+1)
.//1 year from today's date echo date('d-m-Y', strtotime('+1 year')); //1 year from from specific date echo date('22-09-Y', strtotime('+1 year'));
hoffe, dieser einfachere Code hilft jemandem in Zukunft :)
quelle
Ich bevorzuge den OO-Ansatz:
$date = new \DateTimeImmutable('today'); //'today' gives midnight, leave blank for current time. $futureDate = $date->add(\DateInterval::createFromDateString('+1 Year'))
Verwenden
DateTimeImmutable
Sie sonst das ursprüngliche Datum ändern! Weitere Informationen zu DateTimeImmutable: http://php.net/manual/en/class.datetimeimmutable.phpWenn Sie nur ab dem heutigen Datum möchten, können Sie immer Folgendes tun:
new \DateTimeImmutable('-1 Month');
quelle
Wenn Sie PHP 5.3 verwenden, müssen Sie die Standardzeitzone festlegen:
quelle
strtotime()
kehrt zurückbool(false)
, weil es den String nicht analysieren kann'+one year'
(es versteht "eins" nicht).false
wird dann implizit in deninteger
Zeitstempel umgewandelt0
. Es ist eine gute Idee, zu überprüfenstrtotime()
, ob die Ausgabe nicht erfolgt,bool(false)
bevor Sie sie in andere Funktionen verschieben.Aus den Dokumenten:
quelle
Versuche dies
$nextyear = date("M d,Y",mktime(0, 0, 0, date("m",strtotime($startDate)), date("d",strtotime($startDate)), date("Y",strtotime($startDate))+1));
quelle
Es gibt auch eine einfachere und weniger ausgefeilte Lösung:
$monthDay = date('m/d'); $year = date('Y')+1; $oneYearFuture = "".$monthDay."/".$year.""; echo"The date one year in the future is: ".$oneYearFuture."";
quelle
Meine Lösung ist:
date('Y-m-d', time()-60*60*24*365);
Sie können es mit folgenden Definitionen "lesbarer" machen:
define('ONE_SECOND', 1); define('ONE_MINUTE', 60 * ONE_SECOND); define('ONE_HOUR', 60 * ONE_MINUTE); define('ONE_DAY', 24 * ONE_HOUR); define('ONE_YEAR', 365 * ONE_DAY); date('Y-m-d', time()-ONE_YEAR);
quelle
In meinem Fall (ich möchte 3 Jahre zum aktuellen Datum hinzufügen) war die Lösung:
$future_date = date('Y-m-d', strtotime("now + 3 years"));
An Gardenee, Treby und Daniel Lima: Was wird mit dem 29. Februar passieren? Manchmal hat der Februar nur 28 Tage :)
quelle