php - 如何在不依赖javascript的情况下决定用户的时区

标签 php javascript

我用这个方法解决了这个问题:

设置 php.ini 时区 = UTC

然后使用 javascript new Date() 转换它以获得客户端等效时间。

但这种方法的一个严重缺点是,如果客户端更改其系统的时区甚至系统时间,它就会发生变化。 Javascript 使用它可以发送到服务器的操作系统时间和时区进行计算,这也存在同样的问题,即客户端可以欺骗你。同时我还看到 facebook 上的生日不受我们客户更改时间或时区的影响。

就我而言,我目前需要显示今天生日的解决方案。 由于服务器和客户端时区不同。生日在早上 5:30 更改,因为我在 php 中将 UTC 设置为时区并且我位于印度。我尝试并指出了该方法中的问题。

请提出一个没有上述错误的解决方案。

最佳答案

尝试这样的事情......

不是发送生日的绝对时间,而是发送相对于现在的时间

换句话说,不要让服务器说“生日是 5 月 18 日 12:00”。相反,让它说“生日是从现在起 80 小时 20 分钟。”

这样,客户认为现在几点并不重要;只要他们的时钟以正常速度滴答作响,他们就会看到生日是“今天”或“两小时后”或其他什么。

通过网络发送时差会损失一点精度,但应该在一秒左右或更短,这没什么大不了的。

关于php - 如何在不依赖javascript的情况下决定用户的时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10607207/

相关文章:

javascript - 将数据从接收到的 JSON 格式转换为 JVectorMap 格式

javascript - 用于在 Google 表格中分解查询参数的 Google 应用脚本

javascript - Javascript 中的高密度随机字符串

php - mysql_fetch_array 和 while 循环丢失第一个结果

php - Laravel where 子句,以及 or 列表

PhpUnit 忽略了它的 XML 配置文件中的*一些*指令

php - 如何过滤这个多维数组?

javascript - Jquery 克隆和重命名输入字段

javascript - 游戏未检测到角色与边框之间的碰撞

php - 仅显示图像路径中的文件名