时、分相差 php
Hour, Minute difference in php
我正在 Php 中寻找解决方案。
我有 hh:mm:ss 格式的任务总时间。 (日期不重要)。
我也以 hh:mm:ss 格式输入每个工作时间。现在我必须找出 hh:mm:ss 格式的剩余时间。
例子
16:00:00 是完成任务的指定时间。
在不同的日期,一名员工工作 13:15:00 小时
现在我需要剩余的小时数,格式为 2:45:00。
如果附加了日期,那么我们可以这样做
datetime1 = new DateTime('2014-02-11 04:04:26 AM');
$datetime2 = new DateTime('2014-02-11 05:36:56 AM');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%h')." Hours ".$interval->format('%i')." Minutes";
就我而言,没有日期。 PHP 中有没有找到这种 hh:mm:ss 差异的功能?
您必须将其转换为时间戳,然后计算差异并将差异格式化为正常日期。
像这样:
function dateDifference($date_1 , $date_2 , $differenceFormat = '%a' )
{
$datetime1 = date_create($date_1);
$datetime2 = date_create($date_2);
$interval = date_diff($datetime1, $datetime2);
return $interval->format($differenceFormat);
}
将您的 HH:MM:SS 格式转换为以秒为单位的持续时间,减去它们,将它们格式化回 HH:MM:SS:
function str_to_seconds($duration) {
list($h, $m, $s) = explode(':', $duration);
return $s + ($m * 60) + ($h * 3600);
}
function seconds_to_str($seconds) {
return sprintf('%02d:%02d:%02d', $seconds / 3600, $seconds / 60 % 60, $seconds % 60);
}
echo seconds_to_str(str_to_seconds('16:00:00') - str_to_seconds('13:15:00'));
超短版
$secondsDiff = abs(strtotime("2014-02-11 04:04:26 AM") - strtotime("2014-02-11 05:36:56 AM"));
echo sprintf("%02d", floor($secondsDiff / 3600)) . ":" . sprintf("%02d", floor($secondsDiff / 60 %60)) . ":" . sprintf("%02d", ($secondsDiff % 60));
我正在 Php 中寻找解决方案。
我有 hh:mm:ss 格式的任务总时间。 (日期不重要)。 我也以 hh:mm:ss 格式输入每个工作时间。现在我必须找出 hh:mm:ss 格式的剩余时间。
例子
16:00:00 是完成任务的指定时间。 在不同的日期,一名员工工作 13:15:00 小时 现在我需要剩余的小时数,格式为 2:45:00。
如果附加了日期,那么我们可以这样做
datetime1 = new DateTime('2014-02-11 04:04:26 AM');
$datetime2 = new DateTime('2014-02-11 05:36:56 AM');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%h')." Hours ".$interval->format('%i')." Minutes";
就我而言,没有日期。 PHP 中有没有找到这种 hh:mm:ss 差异的功能?
您必须将其转换为时间戳,然后计算差异并将差异格式化为正常日期。
像这样:
function dateDifference($date_1 , $date_2 , $differenceFormat = '%a' )
{
$datetime1 = date_create($date_1);
$datetime2 = date_create($date_2);
$interval = date_diff($datetime1, $datetime2);
return $interval->format($differenceFormat);
}
将您的 HH:MM:SS 格式转换为以秒为单位的持续时间,减去它们,将它们格式化回 HH:MM:SS:
function str_to_seconds($duration) {
list($h, $m, $s) = explode(':', $duration);
return $s + ($m * 60) + ($h * 3600);
}
function seconds_to_str($seconds) {
return sprintf('%02d:%02d:%02d', $seconds / 3600, $seconds / 60 % 60, $seconds % 60);
}
echo seconds_to_str(str_to_seconds('16:00:00') - str_to_seconds('13:15:00'));
超短版
$secondsDiff = abs(strtotime("2014-02-11 04:04:26 AM") - strtotime("2014-02-11 05:36:56 AM"));
echo sprintf("%02d", floor($secondsDiff / 3600)) . ":" . sprintf("%02d", floor($secondsDiff / 60 %60)) . ":" . sprintf("%02d", ($secondsDiff % 60));