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
.
Хотя это должно быть 2012-07-27 19:55
. Как мне это исправить?
15
Author: Eric Leschinski, 2012-07-27
1 answers
Вам следует сделать:
$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');
37
Author: Bogdan, 2015-11-18 14:16:33