Php 基于浏览器区域设置/位置的自动日期格式

Php 基于浏览器区域设置/位置的自动日期格式,php,javascript,date,locale,Php,Javascript,Date,Locale,我正在寻找解决方案在javascript或PHP格式的日期和时间的基础上访客的位置和地区设置 比如说 echo auto_format_date(time()); 美国用户将于2011年9月20日输出,英国用户将于2011年9月20日输出 谢谢大家的回答。现在我面前有几个备选方案,我将等待一些投票,看看您认为在服务器端代码PHP、ASP.NET中首选哪种方法。。。您可以选中请求的Accept Language HTTP标头以检测客户端浏览器语言 接受语言: 您可以阅读其他信息:您必须通过PHP

我正在寻找解决方案在javascript或PHP格式的日期和时间的基础上访客的位置和地区设置

比如说

echo auto_format_date(time());
美国用户将于2011年9月20日输出,英国用户将于2011年9月20日输出


谢谢大家的回答。现在我面前有几个备选方案,我将等待一些投票,看看您认为在服务器端代码PHP、ASP.NET中首选哪种方法。。。您可以选中请求的Accept Language HTTP标头以检测客户端浏览器语言

接受语言:


您可以阅读其他信息:

您必须通过PHP Geolacator从Ip获取国家/地区

然后使用zned函数:日期\默认值\时区\设置“欧洲/柏林”

创建日期时:

$date=新的Zend_日期

echo$日期


你会得到你想要的…

我自己发现了以下几点:


这可能有助于我在浏览器中输入日期后将其格式化为用户首选的格式。这是一个好的解决方案吗

我找到了另一个答案,它依赖于


让用户选择他们想要的-一个人的地理位置并不一定表明他们喜欢的格式。你曾经在手机上选择过语言环境吗?用户不应该为这些事情操心。在您的示例中,对于美国用户,例如2011年9月20日,我认为应该是第一个月,但我同意RobG的观点,即虽然您可以根据从浏览器代理中找到的任何信息来默认区域设置,最好让用户有机会在用户偏好中覆盖它,例如,我在中国已经18个月了,有时直接从酒店互联网连接冲浪,但也有英国和德国的VPN帐户用于工作。如果每次我去一个网站,它都会改变所有的语言环境设置,因为它决定我是一个中国或德国用户,这会很烦人。不过你的语言环境设置是一样的。您可以在本地控制面板中更改设置。就是,假设javascript正确地选择了它。它与内置的日期和时区函数有何不同?另外-依赖Geolocator需要我更新IP范围的数据库,这会使安装和托管要求复杂化。我使用geoip在DB中获得没有IP范围的国家?date.toLocaleString实现,但不起作用在像Chrome、Safari这样的WebKit浏览器中是应该出现的。我也在谷歌上搜索过。它似乎没有被破坏,只是在所有浏览器中都有所不同。据我所知,在Chrome俄语版本中,Date.toLocaleString返回字符串为英语。是的,在IE、Opera和FireFox中,toLocaleString会为区域设置返回适当的字符串,但结果都不同。
%x     preferred date representation for the current locale 
       without the time        "4/13/2008"
%X     preferred time representation for the current locale
       without the date        "12:53:05"