2

您好,我正在编写一个聊天框,我想在其发布的消息旁边标记用户的当前本地时间。所以我可以使用 javascript :

var date = new Date();

并将变量的字符串形式发送到服务器脚本

但是如果没有激活 Javascript 怎么办?

我知道这是一个非常低的网络用户百分比,但我真的想知道是否有办法(在服务器端)在其 HTTP 请求中检索用户的本地日期:

类似的东西$_SERVER['local_date']会很棒吗?(我知道它不存在,但无论如何有类似的方法吗?)

4

3 回答 3

2

我能想到的唯一方法是通过分析客户端IP地址并从中提取县,然后您可以计算时间差。

然而,虽然它可能适用于许多人,但它远非可靠,而且一些国家有多个时区,所以它非常牵强。

我建议在<noscript>标签中简单地放置诸如“要使用此聊天,请启用 JavaScript”之类的消息。

于 2011-12-06T10:11:44.600 回答
0

您可以要求系统的用户指定他们的时区,当然这取决于用户实际为您正确设置他们的时区。

于 2011-12-06T10:14:54.190 回答
0

除了 JS 之外,还有什么方法可以获取客户端时间吗?不。

但是,无论如何,这不是传统实现的工作方式。

最有可能的是,您不会使用客户端时间,而是使用客户端时间偏移量

传统实现将消息与相应的服务器端时间戳一起存储在数据库中(收到消息时服务器上的时间)。

显示后,然后通过添加客户端时间偏移量将其调整为客户端时间。

客户端时间偏移可以通过几种不同的方式确定:

  • Javascript
  • 默认为某个时区并允许用户指定不同的时区(此版本在您必须注册帐户的论坛中很受欢迎)。

确定偏移量后,可以在两个位置进行调整:

  • 要么在服务器端应用程序(PHP 等)中,以便将客户端时间写入页面。
  • 在 Javascript 中

所以,到目前为止提供的答案是正确的,但我只想解释它的传统做法。

于 2011-12-06T12:56:05.397 回答