Вычитание количества лет из даты - PullRequest
2 голосов
/ 18 января 2011

Скажи, что у меня есть код: date('Y')."-".date('m')."-".date('d') Как мне удалить число лет с даты, которую мне дает фрагмент кода?

Ответы [ 4 ]

9 голосов
/ 18 января 2011
$date = strtotime('-2 years');

А так как ваш печатный код - не что иное, как замысловатая версия этого:

echo date('Y-m-d', $date);

... вы могли бы упростить все в одну строку:

echo date('Y-m-d', strtotime('-2 years'));
5 голосов
/ 18 января 2011

В вашей ситуации вы можете воспользоваться неявным приведением типов PHP и просто использовать

(date('Y')-42)."-".date('m')."-".date('d')

или короче

(date('Y')-42)."-".date('m-d')

Но, как заметил Альваро Г. Викарио в комментарии,есть страшное 29 февраля, которого не существует во всех годах, поэтому вам придется использовать strtotime

Пример:

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

или относительно текущего времени

$threeYearsBefore = strtotime('-3 years');
echo date('Y-m-d', $threeYearsBefore);
4 голосов
/ 18 октября 2012

Начиная с PHP5.2, вы можете использовать класс DateTime вместе с DateInterval для выполнения:

$now = new DateTime();
$two_years_ago = $now->sub(new DateInterval("P2Y"));
echo $two_years_ago->format('Y-m-d');
0 голосов
/ 07 октября 2015

дата эха ("Y-m-d", strtotime ('- 20 лет'));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...