Facebook,myspace,MSN,craigslist;所有这些都可以检测时区并正确显示时间和日期,而无需提交表单或重新加载页面。
他们是怎么做到的?我有一个相当大的网站,并有人发布文章,需要显示正确的时间(上传下午3点或下午6点取决于时区)。
预加载器?Javascript?加载页面并重新加载它?我的网站目前有人进入网站,并在第一次进入时,它通过javascript重新加载带有时区更新信息的页面。然而,这是一件非常恼人的事情,我正在寻找另一种选择。我知道在加载时,我可以发送一个ajax请求,然后让它用用户的正确时区更新整个站点的所有内容,但如果我必须单击上一步,或者重新加载它,它会询问我是否愿意再次发送信息,这也是不好的。那么他们是怎么做到的呢?
我在玩Facebook,改变了我在本地机器上的位置,它似乎每隔5分钟左右就会更新一次时区。
我是php,基于zend-framework。
发布于 2011-10-08 18:55:59
没有"timezone“请求头,或者类似的东西,所以你不能用php
但是使用javascript可以获得客户端的时区偏移,然后可以发出xmlhttp请求将信息发送到php。
看看这个:http://www.pageloom.com/automatic-timezone-detection-with-javascript
非常简单!
希望这能有所帮助
发布于 2011-10-08 18:48:53
您可以找到用户国家/地区using IP address geocoding,然后拥有一些包含每个国家/地区时区的数组。我想没有别的办法了。您可以像这样获取用户国家/地区:
<?php
$file = file_get_contents("http://api.hostip.info/get_html.php?ip=".$_SERVER['REMOTE_ADDR']."");
?>
然后对$file
使用explode
即可。
另请看这些Stackoverflow代码:
How can I determine a web user's time zone?
Any Reliable API available to determine User's city and country from IP address
发布于 2011-10-08 18:57:17
我相信他们使用IP寻址和地理位置。非那样做不行。
https://stackoverflow.com/questions/7696215
复制相似问题