だから、私は PHP で DateTime 値と現在の日付の間の時間数を数えようとしています。1 時間ごとに個別にカウントしたいので、秒単位でそれを分単位、次に時間単位で分割することはしたくありません。たとえば、4PM-5PM は 1、5PM-6PM は 2 などです。
したがって、DateTime が 2012-09-24 7:49:23 で、現在の DateTime が 2012-09-24 8:00:19 の場合、数値 1 が出力されます。DateTime が 2012-09-24 7:49 の場合:23 で、現在の DateTime が 2012-09-24 8:59:45 であった場合でも、1 が出力されます (9:00:00 まで 2 に変更されません)。
私が比較に使用しているDateTimeはデータベースから出てきています.DateTimeの分/秒の部分を切り取るように(それらが0になるように)作成する方法を理解できれば. 現在の DateTime で同じことができれば、簡単です。問題は、私はそれを行う方法がわからないということです。では、2012-09-24 7:49:23 を 2012-09-24 7:00:00 に変換するにはどうすればよいでしょうか (DateTime フィールドで MySQL データベースに戻すことができるように、DateTime 形式にする必要があります)。 )
ありがとう!
編集:受け取った両方の回答に感謝しますが、それらをいじってみましたが、私が望むものを正確に得ることができませんでした. 代わりに、これを機能させるために必要なものを (さらに試行錯誤しながら) 自分で考え出すことができました。他の誰かが同様の問題を抱えている場合に備えて、以下に含めました。
$timea = date_format(date_create(date("c")), 'Y-m-d H:00:00');
$timeb = date_format(date_create($databasedate), 'Y-m-d H:00:00');
//hours
$diff = abs(strtotime($timeb) - strtotime($timea));
$hours = round(($diff/60/60));
そのコードはすべて非常に単純で理解しやすいはずです。みんなありがとう:)