我正在尝试将postgresql查询中的现有select表达式转换为PHP,但似乎缺少部分计算。
相关领域是:
task_start_timestamp > timestamp without time zone
表达式是:
SELECT justify_interval(((EXTRACT(EPOCH FROM age(localtimestamp, task_start_timestamp)) * (1 - task_progress)/COALESCE(NULLIF(task_progress, 0), 1))::int || \' seconds\')::interval) AS task_eta
我在PHP中的转换:(注意我在查询中添加了一个select localtimestamp as local_timestamp
,以确保计算使用与数据库相同的值。)
$now = strtotime($item['local_timestamp']);
$task_date = strtotime($item['task_start_timestamp']);
$task_age = $now - $task_date;
$task_eta = $task_age * (1 - $item['task_progress']);
但是,服务器返回的结果不同。
local_timestamp = 2013-02-28 22:53:42.215137
task_start_timestamp = 2013-02-28 22:22:19.255593
task_eta = 00:10:28
php_task_eta = 00:07:50