php - MySQL current_timestamp - 时间戳抛出错误的结果

标签 php mysql

在 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 分钟后的差异是 1800round(1800/3600) = round(0.5)当然给出 1 .

根据您的实际列类型使用 timediff() timestampdiff() 供您计算。

关于php - MySQL current_timestamp - 时间戳抛出错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14033537/

相关文章:

php - 如何在用户查看页面时更新页面?

mysql - mysql插入超时大

PHP 使用 FetchAll 创建函数

php - jQuery 自动完成 - 按多个值搜索

mysql - 从子查询中选择

backup - mysqldump 命令复制 MySQL 管理员创建的备份

javascript - Ajax 结果依赖于 PHP 结果

php - AJAX 间隔函数对服务器有害吗?

php - Javascript 函数不会回显

php - 错误:mysqli_stmt::bind_param():类型定义字符串中的元素数量与绑定(bind)变量的数量不匹配