I am trying to display user friendly date formatting such as "1 hour and 15 minutes", "4 days and 8 hours" to the user. However my script is displaying 0 hours as 23 for some reason.
 $date = '2014-01-15 15:00' # PAST DATE
    $now        = Date("Y-m-d H:m:s");
            $seconds    = strtotime($now) - strtotime($date);
            $days    = floor($seconds / 86400);
            $hours   = floor(($seconds - ($days * 86400)) / 3600);
            $minutes = floor(($seconds - ($days * 86400) - ($hours * 3600))/60);
            $seconds = floor(($seconds - ($days * 86400) - ($hours * 3600) - ($minutes*60)));
            if($days > 0)
            {
                if($days == 1)
                {
                    return $days . ' dag ' . $hours . ' timmar';
                } else {
                    return $days . ' dagar ' . $hours . ' timmar';
                }
            }
            if(($hours < 24) AND ($hours > 0))
            {
                return $hours . ' timmar';
            }
            if($minutes < 60)
            {
                return $minutes . ' minuter';
            }
Can anyone see what is causing this? Am I doing it the correct way? Note that $date is user supplied in the past.
 
     
    