【问题标题】:PHP: Get current locale using timezonePHP:使用时区获取当前语言环境
【发布时间】:2017-06-06 10:48:11
【问题描述】:

我正在使用时区根据用户的时区获取用户的准确时间。我有一个下拉列表来为用户选择时区,并在他们选择时区时显示他们的当前时间。我使用的代码是:

$timezone = 'America/New_York';
date_default_timezone_set($timezone);
echo date('H:i:s A');

它工作正常。我想以与获取该时区的当前时间相同的方式使用时区获取该用户的区域设置。

如何使用时区实现当前语言环境? PHP 是否有任何使用时区获取当前语言环境的解决方案?

【问题讨论】:

  • 我想获得像 en_US 这样的当前语言环境,所以它肯定不会重复
  • 当一个时区有多个区域设置时,你需要哪一个?顺便说一句,这是两件不同的事情,我认为这是不可能的!
  • 对我们来说会是这样的实际情况 en_US

标签: php timezone locale


【解决方案1】:

语言环境和时区是正交的。您无法从另一个中确定一个。

  • America/New_York表示用户本地时间与纽约市对齐,在美国恰好称为“东部时间”,标准时间比UTC晚5小时,比UTC晚4小时夏令时生效时。

  • en-US(或en_US)表示用户说英语,使用美国的文化方言(单词选择、数字、日期等)。例如,en-US 使用 MM/DD/YYYY 日期格式,en-GB 使用 DD/MM/YYYY 日期格式,但我们都将第一个月称为“一月”,而 es-MX 将第一个月称为“enero” .

我很可能是一个说英语的美国人访问日本,因此我的时区将是 Asia/Tokyo,即使我的本地仍然是 en-US

旁白:连字符 (-) 是在区域设置标识符中分割语言和国家/地区代码的正确字符。尽管某些实现已将下划线 (_)、this is not correct 替换为 IETF 语言标签规范。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 2014-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多