PHP вычитается 1 месяц со дня, сгенерированного с датой ('mY')

Я пытаюсь вычесть 1 месяц с даты.

$today = date('m-Y'); 

Это дает: 08-2016

Как я могу вычитать месяц, чтобы получить 07-2016 ?

Solutions Collecting From Web of "PHP вычитается 1 месяц со дня, сгенерированного с датой ('mY')"

  <?php echo $newdate = date("mY", strtotime("-1 months")); 

вывод

 07-2016 

Попробуй это,

 $today = date('m-Y'); $newdate = date('m-Y', strtotime('-1 months', strtotime($today))); echo $newdate; 

В зависимости от вашей версии PHP вы можете использовать объект DateTime (введенный в PHP 5.2, если я правильно помню):

 <?php $today = new DateTime(); // This will create a DateTime object with the current date $today->modify('-1 month'); 

Вы можете передать другую дату конструктору, это не должна быть текущая дата. Дополнительная информация: http://php.net/manual/en/datetime.modify.php

Предупреждение! Вышеупомянутые примеры не будут работать, если вызывать их в конце месяца.

 <?php $now = mktime(0, 0, 0, 10, 31, 2017); echo date("mY", $now)."\n"; echo date("mY", strtotime("-1 months", $now))."\n"; 

выведет:

 10-2017 10-2017 

Следующий пример даст тот же результат:

 $date = new DateTime('2017-10-31 00:00:00'); echo $date->format('m-Y')."\n"; $date->modify('-1 month'); echo $date->format('m-Y')."\n"; 

Множество способов решения проблемы можно найти в другом потоке: PHP DateTime :: изменить время добавления и вычитания