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

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

2009-01-01

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

Ответ 1

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

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

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

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

Ответ 2

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

  $time = strtotime("-1 year", time());
  $date = date("Y-m-d", $time);

Ответ 3

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

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

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

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

Ответ 4

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

date('Y-m-d', strtotime('-1 year'));

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

Ответ 5

// 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);

Ответ 6

На моем веб-сайте, чтобы проверить , зарегистрировано ли людям 18 лет, я просто использовал следующее:

$legalAge = date('Y-m-d', strtotime('-18 year'));

После этого сравните только даты wo.

Надеюсь, это может помочь кому-то.

Ответ 7

Вы можете использовать следующую функцию для вычитания 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'));