2011-03-02 247 views

回答

44
$newTimestamp = strtotime('+2 years', $timestamp); 

根据需要替换“+2年”。

裁判:http://php.net/manual/en/function.strtotime.php

+0

@NullUserException:看起来很明显,你会替换'2'和'N',和'$ timestamp'包含正确的时间戳。在Jeff的代码中,没有其他地方说'$ timestamp' = now。 – 2011-03-02 20:19:52

+0

这是一个例子......但条件是,“根据需要替换+2年”:P – 2011-03-02 20:20:06

+0

我已经+1了,但是我的选票已被封顶。 :) – 2011-03-02 20:20:33

8
$date = new DateTime(); 
$date->add(new DateInterval('P10Y')); 

增加了10年(10Y)到 “今天”。但是,DateTime只能在PHP 5.3中使用。

+0

+1,不知道那个!在旁注中,你知道一些关于v5.3的新东西的一些很好的文本/书籍/教程吗?除官方手册外。 – Czechnology 2011-03-02 20:18:40

+0

不是手动。不过,php网站有一个很好的更新日志/迁移教程。我倾向于避免使用PHP书籍,因为它们要么过时了,写得不好(例如,导致你编写非常糟糕的不安全代码),或者只是错误的。 – 2011-03-02 20:20:02

+0

不完全正确:DateTime自5.2开始,仅为5.3添加了DateInterval。 – tobyS 2011-03-02 20:26:09

1

当你这样做时你应该考虑一件事。

$newTimestamp = strtotime('+2 years', $timestamp); 

这增加了2年(720或721天)。如果你只想保持相同的日期和月份,并在时间戳

中添加2个额外年份,则必须使用mktime。

$timestamp = mktime(0, 0, 0, $month, $day, $year+2);` 
+0

现在,您应该使用像Carbon这样的库在php中完成所有这些时间/日期的工作人员。与日期一起工作令人高兴。 – 2016-07-09 09:53:53

0
$date = "1998-08-14"; 

$newdate = strtotime ('+2 years' , strtotime ($date)) ; 
$newdate = date ('Y-m-j' , $newdate); 

echo $newdate; 

回声

2000-08-14