我有一个这样的日期:
2009-01-01
如何返回一年前的同一日期?
我有一个这样的日期:
2009-01-01
如何返回一年前的同一日期?
Answers:
// 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);
尽管对此问题有许多可接受的答案,但我看不到sub
使用该\Datetime
对象的方法的任何示例:https : //www.php.net/manual/zh/datetime.sub.php
因此,作为参考,您也可以使用\DateInterval
来修改\Datetime
对象:
$date = new \DateTime('2009-01-01');
$date->sub(new \DateInterval('P1Y'));
echo $date->format('Y-m-d');
哪个返回:
2008-01-01
有关的更多信息\DateInterval
,请参阅文档:https : //www.php.net/manual/zh/class.dateinterval.php
您可以使用以下功能从日期中减去1或任何年份。
function yearstodate($years) {
$now = date("Y-m-d");
$now = explode('-', $now);
$year = $now[0];
$month = $now[1];
$day = $now[2];
$converted_year = $year - $years;
echo $now = $converted_year."-".$month."-".$day;
}
$number_to_subtract = "1";
echo yearstodate($number_to_subtract);
在上面的示例中,您还可以使用以下示例
$user_age_min = "-"."1";
echo date('Y-m-d', strtotime($user_age_min.'year'));