2011-12-16 73 views
3

我想为增加一年的$exdate的值。php日期加1年输出奇怪的日期

PHP代码如下图所示:

date_default_timezone_set('UTC'); 
$joindate = date("d/m/Y"); 
$exdate = date("d/m/Y", 
    strtotime(date("d/m/Y", strtotime($joindate)) . " + 365 day")); 

然而,当我回声出两个变量,我得到这样的:

注册日期:16/12/2011
除息日: 1971年1月1日

(除权日期应该是16/12/2012)

任何人都知道我犯的错误在哪里?

谢谢。

回答

4

$exdate = date("d/m/Y", strtotime("+ 365 day"));

而且$exdate15/12/2012,因为2012年是闰年其中有366天。

+0

这是15/12/2012而不是16/12/2012(我想要)的输出。这是一些错误的PHP有?感谢回复。 – sm21guy 2011-12-16 06:58:37

+0

它可以是366天的年) – pltvs 2011-12-16 06:59:44

8
$joindate = date('d/m/Y'); 
$exdate = date('d/m/Y', strtotime('+1 year')); 
0

看一看mktime()在PHP手册(here

有了它,你可以添加天,月,年,时,分,秒,这样现有的日期:

$date = "2011-12-16"; 
$dateTime = strtotime($date); 

$day = date("d", $dateTime); 
$month = date("m", $dateTime); 
$year = date("Y", $dateTime) + 1; 
$hour = date("H", $dateTime); 
$minute = date("i", $dateTime); 
$second = date("s", $dateTime); 

$nextYearTime = mktime($hour, $minute, $second, $month, $day, $year); 

$nextDate = date("Y-m-d", $nextYearTime); 

您也可以将此代码(或其变体)封装到函数中以实现可移植性。

0

如果你改变格式,以“M/d/Y”

0

试试这行代码,您的代码也能正常工作。

$dateOneYearAdded = strtotime(date("Y-m-d", strtotime($currentDate)) . " +1 year"); 
echo "Date After one year: ".date('l dS \o\f F Y', $dateOneYearAdded)."<br>"; 

谢谢。

3

试试这个:

$date = strtotime("+365 day", strtotime("2011-12-16")); 
echo date("Y-m-d", $date); 
1

增加一年本年度的最简单的方法是这样的INTVAL(日期( 'Y'))+ 1。