我在 MySQL 中有一个查询(感谢用户Ross Smith II),我在控制台中测试过,(几小时前返回 1 天 10 小时 34 分钟)我相对确定我的 PHP 是正确的,尽管我可能是忽略某些东西,或者这个查询的某个地方有一个条件,我不能做我想做的事情。真的很感激一些见解。请注意,顶部的时间戳将是从另一个表中选择的变量,但出于此查询的目的,我以相同的格式设置了时间。我已经取出所有变量并尝试了原始数据,仍然可以在 SQL 查询中使用,但我无法让 PHP 回显它。我收到致命错误:调用非对象上的成员函数 fetch_assoc()。再次感谢。
$aquery = ("SET @start = \"2013-01-19 07:56:22\";
SET @end = NOW();
SELECT
CONCAT(
FLOOR(
(
UNIX_TIMESTAMP(@end) - UNIX_TIMESTAMP(@start) - 86400 * (
(FLOOR(DATEDIFF(@end, @start) / 7) * 2) +
IF(WEEKDAY(@end) > 4, WEEKDAY(@end) - 4, 0) +
IF(WEEKDAY(@end) < WEEKDAY(@start), 2, 0)
)
) / 86400
),
' days ',
TIME_FORMAT(
SEC_TO_TIME(
(
UNIX_TIMESTAMP(@end) - UNIX_TIMESTAMP(@start) - 86400 * (
(FLOOR(DATEDIFF(@end, @start) / 7) * 2) +
IF(WEEKDAY(@end) > 4, WEEKDAY(@end) - 4, 0) +
IF(WEEKDAY(@end) < WEEKDAY(@start), 2, 0)
)
) % 86400
),
'%H hours %i minutes'
)
) AS duration");
$aresult = $mysqli->query($aquery);
// while( $row = $result->fetch_assoc() ) {
// Edited typo above, does not fix.
while ( $row = $aresult->fetch_assoc() ) {
echo ($row['duration']);
}