Javascript 从客户端提交请求的时间戳

Javascript 从客户端提交请求的时间戳,javascript,php,http,Javascript,Php,Http,因此,当客户端浏览器中发生事件时,它会向服务器发送日志请求。我希望事件的时间戳尽可能接近真实。然而,我们发现,我们不能相信从Javascript获得这些信息,因为一些浏览器有虚假的时间,比如今天早上,一个浏览器向我们发送了2000年某个时候的时间戳 下一个最好的方法是获取请求启动的时间。现在我们将时间戳设置为接收请求的时间,因为我们只能信任服务器 我需要时间戳是可信的,并且尽可能接近HTTP请求的创建时间 服务器在PHP5.3.3上运行。谢谢在表格中插入 <input type='hidd

因此,当客户端浏览器中发生事件时,它会向服务器发送日志请求。我希望事件的时间戳尽可能接近真实。然而,我们发现,我们不能相信从Javascript获得这些信息,因为一些浏览器有虚假的时间,比如今天早上,一个浏览器向我们发送了2000年某个时候的时间戳

下一个最好的方法是获取请求启动的时间。现在我们将时间戳设置为接收请求的时间,因为我们只能信任服务器

我需要时间戳是可信的,并且尽可能接近HTTP请求的创建时间

服务器在PHP5.3.3上运行。谢谢

在表格中插入

<input type='hidden' name='reqTimeStamp' value='<?php echo time();?>'>

所有这些都应该已经记录在apache或ngninx access.log中。您可能需要启用它,但这是最简单的选择。如果坚持制作php日志,只需执行以下操作:

<?php
file_put_contents("mylog.log",new DateTime() . " - {$_SERVER['REMOTE_ADDR']} visited.\n");
?>

正如Jon所说,您不能信任客户端输入。如果客户端的请求创建和您的请求接收之间的差异对您来说非常重要,您可以尝试使用netspeed数据库调整时间戳(例如)

好的,我意识到基于所有反馈的解决方案只是坚持我所拥有的,它记录请求到达服务器时的时间戳。这与实际事件尽可能接近,并且仍然有一个可靠的时间戳。

您是否意识到您不能信任客户机?除了客户端之外,没有人知道客户端的请求是什么时候启动的?也许你可以从服务器发送正确的时间,并将客户端上的时间与其时间进行比较。然后,在发送日志请求时,需要添加一个偏移量。但是有很多未知的影响是无法处理的。也许获得网络延迟会更可靠?浏览器可能会发送虚假的时间戳,但这没关系,因为我可以从服务器时间戳中减去请求持续时间?这将是页面加载的时间,而不是事件发生的时间。