         {id, start} = data
         # do not allow recording the time more than once, which would be weird.
         delete @_log_open_time[path]
-        @log({time: new Date() - start}, id)
+        @log({time: misc.server_time() - start}, id)
 
     # Save the given file in this project (if it is open) to disk.
     save_file: (opts) =>

            project_id : @project_id
        if not id
            # new log entry
            id             = misc.uuid()
            obj.time       = new Date()
        obj.id = id
        require('./webapp_client').webapp_client.query
            query : {project_log : obj}

                            # since the idea of "finishing opening and rendering" is
                            # not simple to define.
                            @_log_open_time ?= {}
                            @_log_open_time[opts.path] = {id:id, start:misc.server_time()}

                            # grab chat state from local storage
                            local_storage = require('./editor').local_storage
