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, а не разницу во времени. Спасибо за помощь в понимании того, что я делаю неправильно, спасибо!

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 () и другим функциям для работы с таблицами результатов, чтобы получить доступ к возвращенным данным.

Таким образом, вы можете попробовать следующее:

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

Другие решения

Использование только Php.

$datetime1 = strtotime($ts);
$datetime2 = strtotime(date('Y-m-d H:i:s'));
$interval  = abs($datetime2 - $datetime1);
echo 'Diff. in seconds is: '.$interval;
0

По вопросам рекламы [email protected]