Как отнять период от даты в PHP?

240
19 декабря 2016, 19:26

Имеем дату из БД $row['doomsday'] в формате 06.06.1666

Такое с данной датой работает:

$doomsday = date ("d.m.Y", strtotime($row['doomsday'])-60*60*48);  //отнимает 2 суток.

А как реализовать такое же, но через выражения - "day","month" и т.п.? К примеру, чтобы как-то так было:

$doomsday = date ("d.m.Y", strtotime($row['doomsday'])-strtotime("-2 day")); 
$collapse_day = date ("d.m.Y", strtotime($row['collapse_day'])-strtotime("-1 month"));

Есть какое-нибудь решение такой задачи?

Answer 1

Форум sources навёл на решение:

$reminder = date ("d.m.Y", strtotime("-1 month", strtotime($row['date_from_db'])));
Answer 2

Для PHP >= 5.3 можно использовать удобный и выразительный объектный интерфейс:

// Исходную дату и интервал можно создать из строкового представления
$target_date = \DateTime::createFromFormat('d.m.Y', '06.06.1970');
$diff = \DateInterval::createFromDateString('2 days');
// Вычитаем из даты необходимый временной интервал.
$target_date->sub($diff);
echo($target_date->format('d.m.Y')); // Выведет "04.06.1970"
READ ALSO
Вывод данных из бд с сортировкой

Вывод данных из бд с сортировкой

Есть таблица db_weapons

261
Ошибка при установке Bitrix на хосинг

Ошибка при установке Bitrix на хосинг

При установке Bitrix на хостинг появляется следующая ошибка: Для установки продукта в кодировке UTF-8 необходимо установить библиотеку mbstring c параметрами...

315
php поменять точку на запятую

php поменять точку на запятую

Обрабатываю числа функцией round:

196