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