【发布时间】:2014-08-19 09:27:13
【问题描述】:
我正在做一个主要使用 javascript、css、html5 的项目。无论用户位于何处,我都需要准确获取本地时间,以允许用户在特定日期访问模块。 假设 1 September.
如何准确获取用户当地时间?
选项:
1:使用JavaScript获取用户本地时间并使用。
问题:用户可以手动更改其系统的日期时间设置,以更改日期并提前访问模块。
2:使用服务器日期时间在特定日期启用模块。
问题:服务器可能位于任何地方,例如:在美国,除非美国的日期是 9 月 1 日,否则澳大利亚的人将无法访问该模块。
还有其他选择吗?
是否可以选择使用客户端 IP 地址?
【问题讨论】:
-
你不能依赖 JS 日期,这是用户控制的。您也不能依赖 IP,因为请求可能来自代理。这个问题真的没有答案,除了如果你不能信任你的用户,你可以使用的数据是不可靠的。
-
您不能相信用户的时间或他们报告的任何其他内容(他们可能会撒谎)。而且您不能相信他们的 IP 来反映他们的位置(可能是 VPN,这可能是私有的,因此在任何 IP 查找中都不会被识别出来。尽管这本身就是一个问题:如果美国的雇员公司在澳大利亚的家中工作,什么时区适合您的目的?)。夏季时间(等)选项怎么样 - 你真的需要关心当地时间吗?对于一个真正强大、一致且没有争议的方法,您可能需要一个平坦的地球(我只是半开玩笑......)
-
我认为您仍然可以使用服务器时间并使用其本地数据中的数据(使用 javascript)来仅获取时区。如果您仍然不能信任您的用户,您可以要求他们确认时区,或者从一开始就自行选择。
-
IP 与系统时间一样可靠。客户端始终可以使用代理连接到您的站点。
标签: javascript php html