从日期减去若干年

时间:2011-01-18 16:30:38

标签: php date

说我有代码:date('Y')."-".date('m')."-".date('d')如何从代码片段发出之日起删除若干年?

4 个答案:

答案 0 :(得分:9)

$date = strtotime('-2 years');

因为你的打印代码只不过是一个复杂的版本:

echo date('Y-m-d', $date);

...你可以将所有内容简化为一行内容:

echo date('Y-m-d', strtotime('-2 years'));

答案 1 :(得分:5)

根据您的情况,您可以利用PHP的隐式类型转换,只需使用

(date('Y')-42)."-".date('m')."-".date('d')

或更短

(date('Y')-42)."-".date('m-d')

但是,正如ÁlvaroG。Vicario在评论中所观察到的那样,2月29日可怕的所有年份都不存在,所以你必须使用strtotime < / p>

示例:

$someDay = strtotime('2009-11-23');
$threeYearsBefore = strtotime('-3 years', $someDay);
echo date('Y-m-d', $threeYearsBefore);

或,相对于当前时间,

$threeYearsBefore = strtotime('-3 years');
echo date('Y-m-d', $threeYearsBefore);

答案 2 :(得分:4)

从PHP5.2开始,你可以使用DateTime类和DateInterval来完成:

$now = new DateTime();
$two_years_ago = $now->sub(new DateInterval("P2Y"));
echo $two_years_ago->format('Y-m-d');

答案 3 :(得分:0)

回音日期(&#34; Y-m-d&#34;,strtotime(&#39; - 20年&#39;));