date('H:i',$ ans)返回错误的值

时间:2016-05-03 08:14:33

标签: php codeigniter

我必须在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/)运行此代码,并返回正确的值。

3 个答案:

答案 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秒

example

答案 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