我对下面代码的意图是以秒为单位显示两个时间戳之间的差异,但根本没有显示任何内容。我已经添加了echo $ ts来查看$ ts包含的内容:
$ts = $value['time'];
echo $ts;
$sql = "SELECT TIMESTAMPDIFF(SECOND,(CURRENT_TIMESTAMP),'$ts')";
$diff = mysql_query($sql);
echo $diff;
结果是:
2017-01-26 16:30:51
因此它只显示$ ts的内容,而不是时差。帮助理解我做错了什么将不胜感激,谢谢!
答案 0 :(得分:0)
mysql_query()函数返回:
对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他返回结果集的语句,mysql_query()会在成功时返回资源,如果出错则返回FALSE。
对于其他类型的SQL语句,INSERT,UPDATE,DELETE,DROP等,mysql_query()成功时返回TRUE,错误时返回FALSE。
返回的结果资源应该传递给mysql_fetch_array(),以及其他用于处理结果表的函数,以访问返回的数据。
所以你可以尝试以下方法:
$con = mysql_connect("localhost", "root", "mypass") or
die("Could not connect: " . mysql_error());
mysql_select_db("tutorials");//**your database name**//
$sql = "SELECT TIMESTAMPDIFF(SECOND,(CURRENT_TIMESTAMP),'$ts') as timestamp";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf("diff: %s", $row[0]);
}
mysql_close($con);
答案 1 :(得分:0)
仅使用Php。
$datetime1 = strtotime($ts);
$datetime2 = strtotime(date('Y-m-d H:i:s'));
$interval = abs($datetime2 - $datetime1);
echo 'Diff. in seconds is: '.$interval;