Как установить предыдущие 3 месяца в php? - PullRequest
0 голосов
/ 30 мая 2018

В настоящее время я получаю этот вывод с помощью цикла for для просмотра следующих 3 месяцев текущего месяца:

$this_month = mktime(0, 0, 0, date('m',strtotime($endDate)), 1, date('Y',strtotime($endDate)));
for ($i = 0; $i > 3; $i++) 
{
    $to_date = date('F Y', strtotime($i++.' month', $this_month)) . '';
}  

enter image description here

Как вы можете видеть на изображении, я получаю данные с марта 2018 года по май 2018 года и т. Д. Теперь я хочу, если я получу данные марта 2018 года, тогда я хочу отобразить данные с января 2018 года по март 2018 года и т. Д. Как получить данные этого типа.

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Приведенное ниже приложение будет зацикливать и изменять объект DateTime при этом.Он будет отображать вашу дату в каждом цикле и, таким образом, отображать каждый месяц в течение 3 месяцев в прошлом.

// Date as a string
$sDate = '2018-04-01';

// Create a DateTime object
$oDate = DateTime::createFromFormat('Y-m-d', $sDate);

// Get the previous 3 months
for ($i = 1; $i < 3; $i++) {
    $oDate->modify('-1 month');
    echo $oDate->format('F Y');
}
0 голосов
/ 30 мая 2018

Вы можете использовать DateTime::sub() и DateInterval

вот так:

$date = new DateTime($endDate); // create the dateTime object
$date->sub(new DateInterval('P3M')) // substract 3 months to this date
$to_date =  $date->format('F Y');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...