Ответ 1
Hm, может быть, что-то вроде этого:
echo date("F 1, Y", strtotime("-6 months"));
ИЗМЕНИТЬ;
если вы хотите указать использование персонализированной даты;
echo date("F, 1 Y", strtotime("-6 months", strtotime("Feb 2, 2010")));
Итак, если сегодня было 12 апреля 2010 года он должен вернуться 1 октября 2009 г.
Некоторые возможные решения, которые я искал в Google, кажутся слишком сложными, любые предложения?
Hm, может быть, что-то вроде этого:
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');
?>