2011-12-16 71 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。