说我有代码:date('Y')."-".date('m')."-".date('d')
如何从代码片段发出之日起删除若干年?
答案 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;));