Php “特定时区”;“立即开放”;功能
我需要一个'现在是开放的'php功能的网站上,我正在建设。看看前面的一个例子,我已经构建了我的mysql表:Php “特定时区”;“立即开放”;功能,php,mysql,timezone,Php,Mysql,Timezone,我需要一个'现在是开放的'php功能的网站上,我正在建设。看看前面的一个例子,我已经构建了我的mysql表: hours_id INT NOT NULL, loc_id INT NOT NULL, dow TINYINT NOT NULL, open_time TIME NOT NULL, close_time TIME NOT NULL, 然后使用: "SELECT
hours_id INT NOT NULL,
loc_id INT NOT NULL,
dow TINYINT NOT NULL,
open_time TIME NOT NULL,
close_time TIME NOT NULL,
然后使用:
"SELECT open_time, close_time
FROM opening_hours
WHERE dow=dayofweek(curdate())
AND loc_id=:loc_id"
然后我可以计算出它是否打开。我正在构建的产品是全局的,我需要“立即打开”与位置所在的时区相关,而不是服务器位置或查看器位置
我已经在相关数据库中存储了国家代码和位置的lat/lng,因此我的想法是从中获取时区,或者提供一种方法供用户选择,然后以某种方式修改我的SQL
我的方向对吗?你的方法是什么
“美国/洛杉矶”
,或“欧洲/伦敦”
。提到如果您有lat/lon,您可以通过查找时区CONVERT\u TZ(UTC时间戳(),'UTC','Asia/Tokyo')
类似地,您可以有一个后台进程,只在每条记录上设置一个“now open”标志,但它必须不断地对您的数据库工作,并且您不能在“now”之外的其他时间进行检查。您是否考虑过在打开时间和关闭时间之间的
和now()
@riggsfully是的,但这只能将小时数与服务器时间进行比较,我需要知道某个位置是否在其时区内打开,而不是服务器所在的时区(位置遍布世界各地)。我觉得在检查SQL之前,我需要获取位置的时区、存储它并调整服务器时间。只是不确定这是最好的方法。非常棒的答案,以及关于为什么不存储UTC的精彩解释(我正在考虑这一点)。我会花一点时间,考虑规模的选择-我没有启动,所以它可能不值得,但同时,我希望10万的位置,所以也许我应该把时间在现在。再次感谢,非常感谢。