Дата минус 1 год?

У меня есть дата в таком формате:

2009-01-01 

Как вернуть ту же дату, но 1 год назад?

Related of "Дата минус 1 год?"

Вы можете использовать strtotime :

 $date = strtotime('2010-01-01 -1 year'); 

Функция strtotime возвращает strtotime метку unix, для получения форматированной строки вы можете использовать date :

 echo date('Ym-d', $date); // echoes '2009-01-01' 

Используйте функцию strtotime ():

  $time = strtotime("-1 year", time()); $date = date("Ymd", $time); 

Использование объекта DateTime …

 $time = new DateTime('2099-01-01'); $newtime = $time->modify('-1 year')->format('Ym-d'); 

Или использовать сейчас на сегодня

 $time = new DateTime('now'); $newtime = $time->modify('-1 year')->format('Ym-d'); 

самый простой способ, которым я пользовался и работал хорошо

 date('Ym-d', strtotime('-1 year')); 

это сработало отлично .. надеюсь, это поможет кому-то еще .. 🙂

 // 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("Ymd", $lastyear); 

Вы можете использовать следующую функцию для вычитания 1 или любых лет с даты.

  function yearstodate($years) { $now = date("Ymd"); $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('Ym-d', strtotime($user_age_min.'year'));