postgresql クエリの既存の選択式を 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 での私の変換: (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