【问题标题】:Is possible to know the user time and date in php?是否可以在 php 中知道用户时间和日期?
【发布时间】:2010-12-03 16:32:37
【问题描述】:

可以知道打开php页面的用户的当地时间和日期吗? (不是服务器端时间和日期)。如果答案是否定的,可以给我看一个 javascript 与 php 结合的例子吗? (我不是 Java 开发人员)谢谢。

【问题讨论】:

  • 也许不相关,但经常使用的替代方法是让用户在其用户偏好中指定他们的时区。再说一次,有问题的网站可能没有这样的东西。
  • 你到底需要它做什么?有几种方法可以做到这一点,但如果你想要一个好的答案,你必须告诉我们原因:)
  • 不,为了得到好的答案,我们需要提前糖果;)

标签: php javascript


【解决方案1】:

首先,Java 不是 JavaScript……

您可以通过 HTML 中隐藏的 <input> 来做到这一点。

<input id="user-time" name="user-time" type="hidden" />

在提交时与表单关联的 JavaScript 函数:

function submit() {
    document.getElementById("user-time").value = (new Date()).getTime();
}

在此之后,解析服务器端 PHP 中的时间戳。

【讨论】:

  • 不能说太多:Java不是JavaScript
  • 如果 JavaScript 被禁用?
  • @middaparka:如果返回为空,则让用户选择他/她的时区。这没什么大不了的,更准确,更简单。即使启用了 JavaScript,我也会推荐这个。
【解决方案2】:

是的,但它不会 100% 准确。使用他们的 IP,您可以确定他们所在的时区。请参阅这个关于做 just that 的问题。

获得他们的时区后,您可以使用date_timezone_set 在 PHP 中设置适当的时区并提取他们的日期/时间信息。

【讨论】:

  • 知道 IP 地址的时区与知道实际运行浏览器的 计算机 的时区不同。例如,如果有人通过 VPN 代理访问某个站点,则 IP 地址可能与查看该站点的实际人相距数千英里。
  • @Pointy,嗯,是的。但至少这种方法适用于绝大多数人,用户无需先提交表单。
猜你喜欢
  • 1970-01-01
  • 2018-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多