Добавить шесть месяцев в php

Я пытаюсь получить месяц, шесть месяцев с текущей даты.

Я пробовал использовать:

date('d', strtotime('+6 month', time()));

Но он, похоже, не работает, всегда возвращает 01 . Есть лучший способ сделать это?

Спасибо!

Я считаю, что работа с DateTime намного проще в использовании:

 $datetime = new DateTime(); $datetime->modify('+6 months'); echo $datetime->format('d'); 

или

 $datetime = new DateTime(); $datetime->add(new DateInterval('P6M')); echo $datetime->format('d'); 

или в PHP версии 5.4+

 echo (new DateTime())->add(new DateInterval('P6M'))->format('d'); 

Если вы все еще хотели использовать strtotime и функцию date в отличие от объекта DateTime (), следующее будет работать:

 date('d', strtotime('+6 months')); 

Вы можете использовать класс DateTime в сочетании с классом DateInterval :

 <?php $date = new DateTime(); $date->add(new DateInterval('P6M')); echo $date->format('d M Y'); 

Вам не нужно передавать time() в strtotime, поскольку это значение по умолчанию.

Кроме того, ваш подход правильный – за исключением того, что вы принимаете date('d') (которая выдает день), а не date('m') течение месяца, поэтому echo date('m', strtotime('+6 month')); следует сделать.

Тем не менее, я бы рекомендовал использовать метод DateTime , о котором говорил Джон. DateTime имеет несколько преимуществ по сравнению с «старыми» функциями даты, например, они не перестают работать, когда секунды, когда большой взлом UNIX больше не вписывается в 32-битное целое.

Вы можете использовать класс simpleDate:

 include('../code/simpleDate.php'); $date = new simpleDate(); echo $date->now()->addMonth(6)->get(); 

Проверьте учебники здесь.