//вычитаем год
$date = new DateTime();
$date->modify('-1 year');
echo $date->format('Y-m-d H:i:s');
//вычитаем месяц
$date = new DateTime();
$date->modify('-1 month');
echo $date->format('Y-m-d H:i:s');
//вычитаем день
$date = new DateTime();
$date->modify('-1 day');
echo $date->format('Y-m-d H:i:s');
С добавлением оно так же работает, надо просто заменить - на +.
То что надо, спасибо!
ОтветитьУдалитьагонь! спасибо =)
ОтветитьУдалитьстоит заметить, что если вам надо отнять несколько месяцев, то это будет некорректным, сли сегодня 31 число:
ОтветитьУдалить// неправильно
$date = new DateTime(); // сегодня 31 августа
$date = $date->setDate(2015, 8, 31);
$date->modify('-2 month');
echo $date->format('Y-m-d H:i:s'); // выведет 2015-07-01 12:35:51
правильно:
$date = new DateTime(); // сегодня 31 августа
$date = $date->setDate(2015, 8, 31);
$date = $date->setDate($date->format('Y'), $date->format('m'), 1); // сбросили день месяца
$date->modify('-2 month');
echo $date->format('Y-m-d H:i:s'); // выведет 2015-06-01 12:36:49
Что за бред? отнимаешь два месяца, а в результате получаешь минус 3 месяца.
Удалитьтак ведь проще всё:
ОтветитьУдалить$date = date("d/m/Y", strtotime("+4 hours"));
или
$date = date("d/m/Y", strtotime("-5 days"));
$date->modify('-2 months'); // months во-множественном числе не должно быть?
ОтветитьУдалить