在PHP中确定用户的时间和日期

dai*_*dai 5 php datetime

我希望能够获得使用PHP脚本的人的时间.

我不知道他们将在哪个时区等.

难道没有办法只是说'获取用户的时间'而不是设置时区吗?

Dan*_*man 7

不可以.只有三种方法可以获得用户的时区:

  1. 询问用户

  2. 使用JavaScript检查客户端的时间并使用AJAX请求,cookie等将其发送到您的服务器 - 仅在JS启用且不适用于第一个请求时才有效

  3. 使用IP到位置数据库来定位用户并从该位置确定他们的时区 - 超过5%的时间使用任何商业数据库,您在城市级别的位置将是错误的

  • 所有方法都很有用,#1和#2一样正常.正确性是一个上下文敏感的概念!如果有人正在注册并且您的应用提供了特定时间的报告,那么您应该询问他们想要显示报告的时区,而不是通过JavaScript或任何其他方式进行猜测.JavaScript不仅不总是可用,而且计算机的时区并不总是正确的时区 - 在另一个国家旅行,借用别人的电脑,只是把时钟设置错误等等. (3认同)
  • 如果可能的话,#1是最好的; javascript通常是不正确的,但人们通常知道它们在哪里. (3认同)
  • +1#2(JavaScript)是正确的方法. (2认同)

dec*_*eze 5

不,那里没有.您可以"免费"了解您的用户唯一可以通过HTTP协议进行通信的内容,而不包括"用户时区".

可以使用Javascript从浏览器中获取时间,但这并不能保证准确.

可以尝试对用户进行地理定位,但这更不准确.

用户会自己最了解,问他.