我在获取时间戳方面遇到了麻烦。
我有一个带有时间戳的表(类型是日期时间)。 我希望我的查询输出与当前时间的差异 - 时间戳。
我已尝试使用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 :(得分: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小时才能获得正确的小时差异。