我必须在PHP脚本中计算时差。有时间和时间的价值观。我编写了以下代码以获得不同之处。但它总是返回正确答案+ 1值。
$inTime = '08:30:00';
$outTime = '17:48:00';
$difference = date('H:i',((strtotime($outTime) - strtotime($inTime))));
echo $difference;
输出结果打印为10:18。但输出应该是09:18。我使用Codeigniter框架。我使用在线php测试器(http://phptester.net/)运行此代码,并返回正确的值。
答案 0 :(得分:1)
看看这个方法......
<?php
$time1 = new DateTime('08:30:00');
$time2 = new DateTime('17:48:00');
$interval = $time2->diff($time1);
echo "Time Difference : ".$interval->format('%H hours %i minutes %s seconds');
?>
这将输出:
Time Difference : 09 hours 18 minutes 0 seconds
答案 1 :(得分:0)
有很多方法可以做到这一点,我个人会使用PHP内置的时差函数。
$inTime = date_create('08:30:0');
$outTime = date_create('17:48:00');
$difference = date_diff($inTime, $outTime);
echo $difference->format('%H:%I:%S');
输出:
9点十八分00秒
答案 2 :(得分:0)
function datediff( $date1, $date2 )
{
$diff = abs( strtotime( $date1 ) - strtotime( $date2 ) );
return sprintf
(
"%d Days, %d Hours, %d Mins, %d Seconds",
intval( $diff / 86400 ),
intval( ( $diff % 86400 ) / 3600),
intval( ( $diff / 60 ) % 60 ),
intval( $diff % 60 )
);
}
$inTime = '08:30:00';
$outTime = '17:48:00';
print datediff( $inTime, $outTime ) . "\n";
在线演示:Click Here
仅限分钟:
function datediff( $date1, $date2 )
{
$diff = abs( strtotime( $date1 ) - strtotime( $date2 ) );
return sprintf
(
"%d Mins",
intval(((( $diff % 86400 ) / 3600) * 60))
);
}
$inTime = '08:30:00';
$outTime = '17:48:00';
print datediff( $inTime, $outTime ) . "\n";
<强>输出强>
558 Mins
在线演示: Click Here