2013-05-06 45 views
2

我似乎無法解決爲什麼這是行不通的。添加2年迄今

我可能做了這個完全錯誤的,但希望有人可以幫忙。

我有一個約會,我想在該日期添加2年。當我運行我的代碼時,它只會回顯我開始使用的日期。

有誰知道我哪裏出了問題? 我想只在$ start_date而不是今天的日期使用日期。

$start_date = "2013-05-06 13:18:56"; 
    $targetDate = date($start_date, strtotime('+2 Years')); 
    echo $targetDate; 
+0

這不是如何'日期()'作品。請仔細閱讀文檔:http://php.net/manual/en/function.date.php – 2013-05-06 04:06:47

回答

5

你想這樣的:

$new_date = date('Y-m-d H:i:s', strtotime('+2 years', strtotime($from_date))); 

爲日期格式的選項,檢查出documentation

+0

在代碼的末尾,您錯過了a),一旦我添加它就可以工作!感謝堆。 – Aaron 2013-05-06 04:15:57

0

docs

string date (string $format [, int $timestamp = time() ]) 

的第一個參數是日期格式,而不是你想要操作的實際日期。

看看DateTime::add

0

你的另一個選擇是使用DateTime類內置到PHP: -

$date = \DateTime::createFromFormat('Y-m-d H:i:s', "2013-05-06 13:18:56"); 
var_dump($date); 
$interval = new DateInterval('P2Y'); 
$date->add($interval); 
var_dump($date); 

從這個輸出是一樣的東西: -

object(DateTime)[1] 
    public 'date' => string '2013-05-06 13:18:56' (length=19) 
    public 'timezone_type' => int 3 
    public 'timezone' => string 'Europe/London' (length=13) 
object(DateTime)[1] 
    public 'date' => string '2015-05-06 13:18:56' (length=19) 
    public 'timezone_type' => int 3 
    public 'timezone' => string 'Europe/London' (length=13)