从日期减去若干年

Dog*_*hoe 2 php date

假设我有代码:date('Y')."-".date('m')."-".date('d')从代码片段发布之日起,我将如何删除多年?

Álv*_*lez 9

$date = strtotime('-2 years');
Run Code Online (Sandbox Code Playgroud)

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

echo date('Y-m-d', $date);
Run Code Online (Sandbox Code Playgroud)

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

echo date('Y-m-d', strtotime('-2 years'));
Run Code Online (Sandbox Code Playgroud)

  • 为什么不`约会('Ym-d')`? (4认同)

Ali*_*aru 5

根据您的情况,您可以利用PHP的隐式类型转换并简单地使用

(date('Y')-42)."-".date('m')."-".date('d')
Run Code Online (Sandbox Code Playgroud)

或更短

(date('Y')-42)."-".date('m-d')
Run Code Online (Sandbox Code Playgroud)

但是,正如阿尔瓦罗G.维卡里奥在评论观察,有可能并不适用于所有年存在,所以你二月可怕的29日使用的strtotime

例:

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

或者,相对于当前时间,

$threeYearsBefore = strtotime('-3 years');
echo date('Y-m-d', $threeYearsBefore);
Run Code Online (Sandbox Code Playgroud)

  • 所以...`2012-02-29`减去两年等于`2010-02-29`?;-P (4认同)
  • @DogPooOnYourShoe - 几个月或几天不要尝试相同的技巧!;-) (2认同)