PHP вычесть час из даты

350
11 марта 2017, 04:28

Я получаю дату в виде строчки: "09.03.2017 18:46". Как мне из нее вычесть час, чтобы получить такую строчку "09.03.2017 17:46"?

Answer 1

Есть простой вариант:

$date = date_create("09.03.2017 18:46");
date_modify($date, "-1 hour"); // на 1 час назад
$date_new = date_format($date, "d.m.Y H:i");
echo $date_new; // 09.03.2017 17:46

Переменная $date_new - новая дата.

Answer 2

Например вот так:

$timestamp = strtotime('09.03.2017 18:46') - 60*60;
$date = date('d.m.y H:i', $timestamp);
echo $date;
Answer 3

Можно воспользоваться Datetime и в частности его методом date_sub, который вычтет любой интервал в зависимости от переданного шаблона

$input = '09.03.2017 18:46';
$output = new DateTime($input);
$output->sub(new DateInterval('PT1H'));
echo $output->format('Y-m-d H:i');
Answer 4

Нужно завести привычку работать с датой/временем, как с датой и временем.
Иначе придётся учитывать кучу тонкостей.

Функция для вычитания интервала из даты: DateTime::sub

$date = new DateTime('09.03.2017 18:46');
$date->sub(new DateInterval('PT1H'));
echo $date->format('Y-m-d H:i') . "\n";

3v4l.org

READ ALSO
Не открывается админка umi.cms

Не открывается админка umi.cms

При попытке зайти в админку, после ввода логина:пароля отображается белый экран без всегоВключил debug, выводятся следующие строчки:

400
Параметры функции в PHP

Параметры функции в PHP

Есть следующий PHP код:

360
Как реализовать магазин в игре

Как реализовать магазин в игре

Добрый день, столкнулся со сложностями реализации магазина в игре на phpЭтот кусок кода отвечает за вывод вещей из БД

251
Wordpress: index.php ничего не выводит

Wordpress: index.php ничего не выводит

К базе данных подключено, никаких ошибок не выводит, но когда захожу на сайт, страница абсолютно пустаРаньше с такой проблемой еще не сталкивался,...

295