日期减去1年?

ajs*_*sie 85 php date

我有这种格式的约会:

2009-01-01
Run Code Online (Sandbox Code Playgroud)

我如何返回相同的日期,但提前一年?

CMS*_*CMS 124

你可以使用strtotime:

$date = strtotime('2010-01-01 -1 year');
Run Code Online (Sandbox Code Playgroud)

strtotime函数返回一个unix时间戳,以获取可以使用的格式化字符串date:

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


Ale*_*lex 93

使用strtotime()函数:

  $time = strtotime("-1 year", time());
  $date = date("Y-m-d", $time);
Run Code Online (Sandbox Code Playgroud)

  • > `date('Ymd', strtotime('-1 年'));` (2认同)

小智 49

使用DateTime对象...

$time = new DateTime('2099-01-01');
$newtime = $time->modify('-1 year')->format('Y-m-d');
Run Code Online (Sandbox Code Playgroud)

或者现在使用今天

$time = new DateTime('now');
$newtime = $time->modify('-1 year')->format('Y-m-d');
Run Code Online (Sandbox Code Playgroud)

  • 可以这样做 `$time = new DateTime('now - 1year'); 回声 $time->format('Ymd');`。 (2认同)

saa*_*adk 27

我使用和运作良好的最简单方法

date('Y-m-d', strtotime('-1 year'));
Run Code Online (Sandbox Code Playgroud)

这工作得很完美..希望这也会帮助别人.. :)


Nir*_*mal 9

// set your date here
$mydate = "2009-01-01";

/* strtotime accepts two parameters.
The first parameter tells what it should compute.
The second parameter defines what source date it should use. */
$lastyear = strtotime("-1 year", strtotime($mydate));

// format and display the computed date
echo date("Y-m-d", $lastyear);
Run Code Online (Sandbox Code Playgroud)


Mel*_*man 7

在我的网站上,为了检查注册人是否年满 18 岁,我简单地使用了以下内容:

$legalAge = date('Y-m-d', strtotime('-18 year'));
Run Code Online (Sandbox Code Playgroud)

之后,只比较两个日期。

希望它可以帮助某人。


Oli*_*pin 5

尽管对此问题有许多可接受的答案,但我没有看到任何sub使用该\Datetime对象的方法示例:https : //www.php.net/manual/en/datetime.sub.php

因此,作为参考,您还可以使用 a\DateInterval来修改\Datetime对象:

$date = new \DateTime('2009-01-01');
$date->sub(new \DateInterval('P1Y'));

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

返回:

2008-01-01
Run Code Online (Sandbox Code Playgroud)

有关 的更多信息\DateInterval,请参阅文档:https : //www.php.net/manual/en/class.dateinterval.php