PHP / MySQL试图让TIMESTAMPDIFF输出结果

时间:2017-01-30 17:37:05

标签: php mysql timestampdiff

我对下面代码的意图是以秒为单位显示两个时间戳之间的差异,但根本没有显示任何内容。我已经添加了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的内容,而不是时差。帮助理解我做错了什么将不胜感激,谢谢!

2 个答案:

答案 0 :(得分:0)

mysql_query()函数返回:

  1. 对于SELECT,SHOW,DESCRIBE,EXPLAIN和其他返回结果集的语句,mysql_query()会在成功时返回资源,如果出错则返回FALSE。

  2. 对于其他类型的SQL语句,INSERT,UPDATE,DELETE,DROP等,mysql_query()成功时返回TRUE,错误时返回FALSE。

  3. 返回的结果资源应该传递给mysql_fetch_array(),以及其他用于处理结果表的函数,以访问返回的数据。

  4. 所以你可以尝试以下方法:

    $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;