我经常需要根据用户的信息或受用户的影响来显示信息actual本地时间因时区而异。是否有可靠的方法来获取用户的当前时间和/或时区?
关键的问题:
- 服务器端代码基于网站主机或用户的ISP
- 客户端代码基于用户的系统时钟,太容易被操纵
关键问题:
- 是否有必要精确定位用户的地理位置?
- ISP时间可以作为准确的参考吗?
- 用户操作系统时钟可以由用户改变或修改吗?
例子:
倒数:
距离比赛结束仅剩 1 小时 3 分 56 秒!
问题:还剩几秒,基于什么;用户的操作系统时钟、主机服务器时间(加上或减去偏移量)、ISP 系统时间。如果所有时区的时钟同时结束,这很容易,但如果是用户本地时区的午夜等倒计时,那就更棘手了)
Edit log
项目发布于下午 3:03(10 秒前)
问题:“10 秒”的计算与用户无关,时间会根据用户的时区进行调整。
开放时间:
这家餐厅现在营业至午夜(澳大利亚东部标准时间)。
问题:给出诸如午夜之类的时间可以通过从服务器端偏移来计算,但使用伪时间(例如现在,2 小时内)是基于用户的时间。
PHP: using time()
输出服务器时间。这可以根据用户的时区进行偏移。
JavaScript: using Date()
输出用户的计算机时钟时间,太容易被操纵。
使用 JavaScript,有一种方法可以获取用户当前的时区偏移量。
new Date().getTimezoneOffset() * -1
返回距 GMT 的分钟偏移量。不要存储该值,因为它可能会根据夏令时而变化。如果您在服务器(php)上需要它,那么您需要在发送时捕获它。
不幸的是,HTTP 规范没有将用户时区作为标头发送,而这正是 php 所需要的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)