如何使用Php获取语言环境

如何使用Php获取语言环境,php,Php,如何使用Php获取区域设置,我想根据位置获取时区, 有没有可能进入php 我需要将其转换为GMT并保存数据库。我需要再次将其拉回到具有相同时区的UI。您可以使用: date_default_timezone_set('Europe/London'); date_default_timezone_get; // Europe/London 或 您无法从服务器端获取客户端的区域设置或时区,只能使用JavaScript从客户端猜测 (如果浏览器支持Java,您可以获得更多的语言环境信息,但这有点麻烦

如何使用Php获取区域设置,我想根据位置获取时区, 有没有可能进入php

我需要将其转换为GMT并保存数据库。我需要再次将其拉回到具有相同时区的UI。

您可以使用:

date_default_timezone_set('Europe/London');
date_default_timezone_get; // Europe/London


您无法从服务器端获取客户端的区域设置或时区,只能使用JavaScript从客户端猜测

(如果浏览器支持Java,您可以获得更多的语言环境信息,但这有点麻烦,每个人都讨厌小程序。)

要在web应用程序中处理时区,请将所有时间存储为UTC时间戳,并使用用户选择的时区将其转换为文本以进行页内格式设置。您可以使用方法猜测时区,但由于这不可靠,您还应允许用户明确选择时区。

使用

setlocale  (LC_ALL,"0");

获取结果的实际语言环境。

PHP运行的机器的语言环境或发出HTTP请求的用户的语言环境由PHP处理?
locale
!=
location
我想你是说
location
locale
是一个国家和系统语言的设置。那些双引号是有原因的,还是打字错误?我能用它来获取locale date\u default\u timezone\u get()吗?我们正在开发一个php网站,允许用户配置消息的日程时间(短信息)。因此,我们需要允许最终用户在不同的区域中设置时间。是的……用户必须指定他们手动使用的
时区标识符
,才能传递到Sarfraz所述的
日期默认时区集
。有关标识符列表,请参阅;您可以将它们放在下拉框或其他UI中。您可以使用JavaScript选择best guess timezone作为下拉列表的默认值,如我链接的问题中所示,或者只是默认为UTC。一旦用户输入了时间和时区,您应该将其转换为UTC用于数据库存储。+1用于存储UTC时间戳。您还可能需要检查phpBB源代码(或类似的PHP应用程序),他们让用户在注册时选择他们的时区,我想这正是您要找的。+1表示UTC时间戳,因为它们很容易按[alpha]数字排序,而不是使用复杂的日期算术。非常感谢!它确实出现在PHP文档中,但不知怎的,就在我眼前,我错过了:)这应该是上述问题的答案。谢谢!!到目前为止,我的机器(正在运行PHP5.4)无法实现这一点。无论我设置了什么本地语言,“setlocale(LC_ALL,'0')”每次都返回一个值为“C”的字母字符串!我也有这种行为。但并非总是如此。有时我会得到这个字符串
LC\u CTYPE=de\u de.UTF8;LC_NUMERIC=C;LC_TIME=de_de.UTF8;LC_COLLATE=de_de.UTF8;LC_MONETARY=de_de.UTF8;LC_=C;LC_PAPER=C;LC_NAME=C;LC_地址=C;LC_电话=C;LC_测量=C;LC_IDENTIFICATION=C
,有时只是
C
。奇怪的错误。@JohnSlegers、@Armin、@Tobia:
C
是默认设置,前提是以前从未设置过语言环境。它的意思是什么都没有。尝试
money\u格式(“%i”,123.45)当你得到这个
C
时。没有货币=>
123.45
。但将其设置为
en_en
,您将获得
123.45美元
。您还可以通过以下调用
setlocale(LC_ALL,'C')
,将一个本地和之后设置为之前的状态。。。另见此处:
setlocale  (LC_ALL,"0");