The heartbeat from a server that is in a different time zone than the database/web server happens to lag by exactly the time difference between the two zones. I suspect that timezone differences are currently not accounted for.
As far as the PostgreSQL backend is concerned, the fix might be as simple as changing the type of the columns involved. The servers table currently looks like this:
Table "public.servers"
Column | Type | Modifiers
-------------------------+-----------------------------+------------------------------------------------------
id | integer | not null default nextval('servers_id_seq'::regclass)
name | character varying(255) | not null
heartbeat_interval | integer | not null default 300
heartbeat_time | timestamp without time zone |
update_interval | integer | not null default 300
last_update_finish_time | timestamp without time zone |
daemon_version | character varying(128) |
Indexes:
"servers_pkey" primary key, btree (id)
"index_servers_on_name" unique, btree (name)
I guess heartbeat_time and last_update_finish_time should be timestamp with timezone instead.