Так что если сегодня было 12 апреля 2010 года, он должен был вернуться 1 октября 2009 года
Некоторые возможные решения, которые я искал в Google, кажутся слишком сложными, любые предложения?
Хм, может быть, что-то вроде этого;
echo date("F 1, Y", strtotime("-6 months"));
РЕДАКТИРОВАТЬ;
если вы хотите указать использование персонализированной даты;
echo date("F, 1 Y", strtotime("-6 months", strtotime("Feb 2, 2010")));
используйте комбинацию mktime
и date
:
$date_half_a_year_ago = mktime(0, 0, 0, date('n')-6, 1, date('y'))
чтобы сделать новую дату относительно данной даты, а не сегодня, date
вызова со вторым параметром
$given_timestamp = getSomeDate(); $date_half_a_year_ago = mktime(0, 0, 0, date('n', $given_timestamp)-6, 1, date('y', $given_timestamp))
для его форматирования, просто используйте date
раз:
echo date('F j, Y', $date_half_a_year_ago);
Немного хакерский, но работает:
<?php $date = new DateTime("-6 months"); $date->modify("-" . ($date->format('j')-1) . " days"); echo $date->format('j, F Y'); ?>