Belirttiğim tarihten bir yıl sonra bir tarih almaya çalışıyorum.
Kodum şöyle görünüyor:
$futureDate=date('Y-m-d', strtotime('+one year', $startDate));
Yanlış tarihe dönüyor. Herhangi bir fikriniz neden?
Belirttiğim tarihten bir yıl sonra bir tarih almaya çalışıyorum.
Kodum şöyle görünüyor:
$futureDate=date('Y-m-d', strtotime('+one year', $startDate));
Yanlış tarihe dönüyor. Herhangi bir fikriniz neden?
Yanıtlar:
Bugünün tarihine bir yıl eklemek için aşağıdakileri kullanın:
$oneYearOn = date('Y-m-d',strtotime(date("Y-m-d", mktime()) . " + 365 day"));
Diğer örnekler için $ StartDate'i bir zaman damgası değeriyle başlatmalısınız, örneğin:
$StartingDate = mktime(); // todays date as a timestamp
Bunu dene
$newEndingDate = date("Y-m-d", strtotime(date("Y-m-d", strtotime($StaringDate)) . " + 365 day"));
veya
$newEndingDate = date("Y-m-d", strtotime(date("Y-m-d", strtotime($StaringDate)) . " + 1 year"));
$futureDate=date('Y-m-d', strtotime('+1 year'));
$ futureDate şu andan itibaren bir yıl sonra!
$futureDate=date('Y-m-d', strtotime('+1 year', strtotime($startDate)) );
$ futureDate, $ startDate tarihinden itibaren bir yıldır!
$futureDate=date('Y-m-d',strtotime('+1 year',$startDate));aşağıda belirtilen K Prime'ı yapın.
Deneyin: $futureDate=date('Y-m-d',strtotime('+1 year',$startDate));
,için .ve işe yaradı date("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;
//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'));
umarım bu daha basit kod parçası gelecekte birine yardımcı olur :)
OO yaklaşımını tercih ederim:
$date = new \DateTimeImmutable('today'); //'today' gives midnight, leave blank for current time.
$futureDate = $date->add(\DateInterval::createFromDateString('+1 Year'))
Kullanım DateTimeImmutableaksi takdirde çok özgün tarihini değiştirir! DateTimeImmutable hakkında daha fazla bilgi: http://php.net/manual/en/class.datetimeimmutable.php
Sadece bugünün tarihinden istiyorsan her zaman yapabilirsin:
new \DateTimeImmutable('-1 Month');
strtotime()dönüyor bool(false), çünkü dizeyi ayrıştıramıyor '+one year'("bir" kelimesini anlamıyor). falsedaha sonra dolaylı olarak integerzaman damgasına atılır 0. Diğer işlevlere gitmeden önce strtotime()çıktısının olmadığını doğrulamak iyi bir fikirdir bool(false).
Dönen Değerler
Başarı durumunda bir zaman damgası döndürür, aksi takdirde FALSE. PHP 5.1.0'dan önce, bu işlev başarısızlık halinde -1 döndürürdü.
Ayrıca daha basit ve daha az karmaşık bir çözüm var:
$monthDay = date('m/d');
$year = date('Y')+1;
$oneYearFuture = "".$monthDay."/".$year."";
echo"The date one year in the future is: ".$oneYearFuture."";
Benim çözümüm: date('Y-m-d', time()-60*60*24*365);
Şu tanımlarla daha "okunabilir" hale getirebilirsiniz:
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);