2012-07-27 8 views
14

PHPのdate-time変数から45分を引く必要があります。PHP、strtotimeを使って日時変数から分を引く?

コード:

$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である必要があります。これをどうやって解決するのですか?

あなたがすべき

答えて

34

2300Hの代わりhを持つ

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

は24時間形式が先行ゼロで時間を表す、使用されることを意味します。

詳しくはPHP date function documentationをご覧ください。


DateTime::subような、より堪能なこれを行うための指向の方法を、オブジェクトもあります。

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

それともDateTimeクラスに建てPHPのを拡張Carbonライブラリが提供する、より表現力豊かな方法は:

$datetime_from = (new Carbon($thestime))->subMinutes(45)->format('Y-m-d H:i'); 
関連する問題