2016-09-15 197 views
0

我在获取时间戳差异时遇到问题。时间戳差异,当前时间减时间戳

我有一个表与时间戳(类型是日期时间)。 我想要我的查询输出当前时间 - 时间戳的差异。

我试过使用timediff()类的各种查询。但由于一些奇怪的原因,我得到的差异是在未来8小时左右。

我的表设置如下

Table A 
*--------------------------------* 
| PK | Item | TimeStamp   | 
| 1 | Apple| 2016-09-15 03:21:59| 
*--------------------------------* 

我想这样的差异输出:

Output Table 
*--------------------------------* 
| Item |  TimeStamp   | 
| Apple| 0Days 18Hrs 45Min | 
*--------------------------------* 

我引用一些其他的问题,但似乎没有为工作我。

像这些:

Converting epoch number to human readable date in mysql

Is timestampdiff() in MySQL equivalent to datediff() in SQL Server?

我试图用一个函数目前得到这样的结果,并设置了两次作为变量。

+0

“我试过各种查询”。至少显示其中一个。没有看到它,我们无法分辨你做错了什么。 – Barmar

回答

0

我能得到我想要通过设置变量的结果:

date_default_timezone_set ("America/Chicago"); 
$timenow = new DateTime(date("Y-m-d H:i:s"), new DateTimeZone("America/Chicago")); 
while($row = mysqli_fetch_assoc($ticket)) { 
    $tickettime   = new DateTime($row['ticketopen'], new DateTimeZone("America/Chicago")); 
    $sincestart   = $tickettime->diff($timenow); 
    $hours    = (int)$sincestart->h; 
    $ticket_time  = strval($hours-12)." Hrs ".$sincestart->i." Min "; 

不知道这是否是做到这一点的最好办法,但它给了我我想要的结果。希望这可以帮助别人。

此外,我不得不减去12小时,以获得正确的小时差。