在 PHP 脚本中你好,我有以下 MySQL 查询
$query_players = "SELECT (current_timestamp -`Online_since`) AS `Since` FROM `streams` WHERE `Team` = $temp AND `Online` = 1 ORDER BY `Viewers` DESC";
然后我有:
$since = round($obj_players->Since /3600);
正如您可能想象的那样,$since 应该包含玩家已经在线的时间(以小时为单位)。奇怪的是它有错误的结果。就像 MySQL 中的时间过得更快一样:P 例如,大约 15 分钟后它已经显示“Online since 1 hour”,另一个大约 30 分钟后它已经显示 2 小时等等。
谁知道哪里出了问题?也许 current_timestamps 是问题所在?
最佳答案
current_timestamp
不是真的以秒来衡量。因此,将差值除以 3600 不会产生小时数,而是一些任意值。
18 分钟后的差异是 1800
和 round(1800/3600) = round(0.5)
当然给出 1
.
根据您的实际列类型使用 timediff()
或 timestampdiff()
供您计算。
关于php - MySQL current_timestamp - 时间戳抛出错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14033537/