$date+ 1年?

我试图得到一个从我指定date起一年的date。

我的代码如下所示:

$futureDate=date('Ym-d', strtotime('+one year', $startDate)); 

这是错误的date。 任何想法为什么?

要添加一年到今天的date使用以下内容:

 $oneYearOn = date('Ym-d',strtotime(date("Ymd", mktime()) . " + 365 day")); 

对于其他示例,您必须使用时间戳值初始化$ StartingDate,例如:

 $StartingDate = mktime(); // todays date as a timestamp 

尝试这个

 $newEndingDate = date("Ymd", strtotime(date("Ymd", strtotime($StaringDate)) . " + 365 day")); 

要么

 $newEndingDate = date("Ymd", strtotime(date("Ymd", strtotime($StaringDate)) . " + 1 year")); 
 $futureDate=date('Ym-d', strtotime('+1 year')); 

$ futureDate是从现在开始的一年!

 $futureDate=date('Ym-d', strtotime('+1 year', strtotime($startDate)) ); 

$ futureDate是$ startDate的一年!

试试: $futureDate=date('Ym-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; 

刚刚有同样的问题,但是这是最简单的解决scheme:

 <?php (date('Y')+1).date('-m-d'); ?> 

如果您使用PHP 5.3,那是因为您需要设置默认时区:

 date_default_timezone_set() 

strtotime()返回bool(false) ,因为它不能parsingstring'+one year' (它不明白“一”)。 然后将false隐式转换为integer时间戳0 。 validationstrtotime()的输出是不是bool(false) ,这是一个好主意。

从文档:

返回值

返回成功的时间戳,否则返回FALSE。 在PHP 5.1.0之前,这个函数在失败时会返回-1。

尝试这个

 $nextyear = date("M d,Y",mktime(0, 0, 0, date("m",strtotime($startDate)), date("d",strtotime($startDate)), date("Y",strtotime($startDate))+1)); 

我更喜欢面向对象方法:

 $date = new \DateTimeImmutable('today'); //'today' gives midnight, leave blank for current time. $futureDate = $date->add(\DateInterval::createFromDateString('+1 Year')) 

使用DateTimeImmutable否则您将修改原始date! 更多关于DateTimeImmutable: http : //php.net/manual/en/class.datetimeimmutable.php


如果你只是想从今天的date,那么你总是可以做到:

 new \DateTimeImmutable('-1 Month'); 

还有一个更简单和不太复杂的解决scheme:

 $monthDay = date('m/d'); $year = date('Y')+1; $oneYearFuture = "".$monthDay."/".$year.""; echo"The date one year in the future is: ".$oneYearFuture.""; 
 //1 year from today's date echo date('dm-Y', strtotime('+1 year')); //1 year from from specific date echo date('22-09-Y', strtotime('+1 year')); 

希望这个简单的代码有助于未来的人:)

世界其他地区

 $now = time(); $future = date("dmY", strtotime(date("dmY", $now) . " + 1 year")); echo $future; 

我们

 $now = time(); $future = date("Ymd", strtotime(date("Ymd", $now) . " + 1 year")); echo $future; 

在我的情况下(我想添加3年到当前date)解决scheme是:

 $future_date = date('Ym-d', strtotime("now + 3 years")); 

Gardenee,Treby和Daniel Lima:2月29日会发生什么? 有时二月只有28天:)