Подтвердить что ты не робот

PHP: самый простой способ получить дату месяца за 6 месяцев до первого?

Итак, если сегодня было 12 апреля 2010 года он должен вернуться 1 октября 2009 г.

Некоторые возможные решения, которые я искал в Google, кажутся слишком сложными, любые предложения?

4b9b3361

Ответ 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');

?>