PHP, используйте strtotime для вычитания минут из переменной даты-времени?

мне нужно вычесть 45 минут из переменной даты-времени в PHP.

код:

$thestime = '2012-07-27 20:40';
$datetime_from = date("Y-m-d h:i",strtotime("-45 minutes",strtotime($thestime)));
echo $datetime_from;

возвращает результат 2012-07-27 07:55.

Он должен быть!--2-->, хотя. Как это исправить?

1 ответов


вы должны:

$datetime_from = date("Y-m-d H:i", strtotime("-45 minutes", strtotime($thestime)));

С H вместо h означает, что используется 24-часовой формат, представляющий час с ведущими нулями:00 через 23.

вы можете прочитать больше об этом в PHP дата функция документация.


есть также объектно-ориентированные способы сделать это, которые более свободно, как DateTime::sub:

$datetime_from = (new DateTime($thestime))->sub(DateInterval::createFromDateString('45 minutes'))->format('Y-m-d H:i')

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

$datetime_from = (new Carbon($thestime))->subMinutes(45)->format('Y-m-d H:i');