В вашей ситуации вы можете воспользоваться неявным приведением типов 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);