PHP:以小时为单位返回差值;从今天午夜00:00到现在的几分钟


PHP: return the difference in Hours & Minutes between midnight today 00:00, and now

我试图返回今天午夜"00:00"和现在时间之间的小时和分钟差。

这就是我目前所拥有的:

$now = date('H:i:s', time());
$time1 = strtotime('00:00:00');
$time2 = strtotime($now);
$difference = round(abs($time2 - $time1) / 3600,2);
echo $difference;

返回的值看起来不正确,比如现在的时间是10:37,返回的差值显示为10:63。现在这是不对的。有人能看出我哪里错了吗。

非常感谢您抽出时间。

干杯。

试试这个并设计输出时间。

$start_time = "00:00:00";
$end_time = date("H:i:s", time());
$time1 = new DateTime($start_time);
$time2 = new DateTime($end_time);
$interval = $time1->diff($time2);
var_dump($interval); //for details about the interval times
echo $hour = $interval->format('%h hour'); // hour
echo $min = $interval->format('%i min');   // min
echo $sec = $interval->format('%s second');// sec

这可能是的答案

$start_time = "00:00";
$end_time = date("H:i");
$time1 = new DateTime($start_time);
$time2 = new DateTime($end_time);
$interval = $time1->diff($time2);
echo $hour = $interval->format('%h hour');
echo '<br/>';
echo $min = $interval->format('%i min');

输出为

15小时

24分钟

运行此代码时,输出会有所不同。我刚把它从我的机器上粘贴下来。

您也可以使用这个简短的片段

$now = new DateTime(date('H:i:s'));
$midnight = new DateTime(date('00:00:00'));
$interval = $now->diff($midnight);
$result = $interval->format("%H hour(s) and %i minute(s)");