2013-05-06 63 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)