18

我需要从 PHP 中的日期时间变量中减去 45 分钟。

编码:

$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。我该如何解决?

4

1 回答 1

44

你应该做:

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

代替意味着使用 24 小时格式Hh用前导零表示小时: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');
于 2012-07-27T13:35:15.940 回答