0

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
4

0 に答える 0