Php时差返回相反的值


Php time diff returning the opposite value

我有以下代码:

<?php
require 'core.php';
require 'connectdb.php';
$user_id = getfield('user_id');
$_SESSION['user_id'] = $user_id;
$checker = getchecker();
     // Get current time 
    $query = "SELECT `timein`,`timeout` FROM `time` WHERE `user_id` = '$user_id'";
    if($query_run = mysql_query($query))
    {
        $query_num_rows = mysql_num_rows($query_run);
        if($query_num_rows == 0){
                    echo 'Invalid or No such registered user.';
                }else if($query_num_rows == 1){
                    $in = mysql_result($query_run,0,'timein');
                    $out = mysql_result($query_run,0,'timeout');
                    $_SESSION['in'] = $in;
                    $_SESSION['out'] = $out;
                }
    }
echo $in."  ".$out;
    $datein = strtotime($in);
    $dateout = strtotime($out);
    echo $datein."  ".$dateout;
    $dateDiff    = $datein - $dateout;
    $fullDays    = floor($dateDiff/(60*60*24));
    $fullHours   = floor(($dateDiff-($fullDays*60*60*24))/(60*60));
    $fullMinutes = floor(($dateDiff-($fullDays*60*60*24)-($fullHours*60*60))/60);
    $fullSeconds = floor(($dateDiff-($fullDays*60*60*24)-($fullHours*60*60)-     ($fullMinutes*60*60))/60);
    echo "Differernce is $fullDays days, $fullHours hours $fullMinutes minutes and      $fullSeconds seconds.";   
    ?>

from database:

$in = 12:50:26
$out = 12:52:46

这是运行代码后的结果:

(time in)   (time out) (timestampin)(timestampout) (output)
12:50:26    12:52:46   1365850226   1365850366    Differernce is -1 days, 23 hours 57 minutes and -3363 seconds.

的值应该是:
差异为0 days, 0 hours 2 minutes and 20 seconds .

我有一种预感,这与它的计算有关。我该怎么做才能得到正确答案?

请修改以下行

$dateDiff    = $dateout - $datein; //or better ABS($dateout - $datein)

$fullSeconds = floor(($dateDiff-($fullDays*60*60*24)-($fullHours*60*60)-($fullMinutes*60)));

从dateout中减去datein

$dateDiff    = $dateout - $datein;