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 DateTimeImmutable
aksi 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). false
daha sonra dolaylı olarak integer
zaman 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);