【问题标题】:How to change Date format according to the country如何根据国家/地区更改日期格式
【发布时间】:2013-03-10 21:16:20
【问题描述】:

我需要根据用户所在国家/地区更改 DD/MM/YYYY 标签的顺序。

http://en.wikipedia.org/wiki/Date_format_by_country

我想这样做的方法是创建一个国家/日期格式表,并根据国家选择使用 jquery 移动字段。

有没有一种现有的方法可以用 php 甚至 js 或更好的方法来完成? 我也在寻找一个国家/日期格式表,而不是手动插入所有值,但我找不到任何东西......

【问题讨论】:

  • 查看术语“语言环境”。
  • 感谢大家的回答,但如果可能的话,我需要一个小代码示例来使用建议的 JS toLocaleString 移动字段,我有三个选择元素 DD MM YYYY。 jquery 示例很好,但看起来您需要为每个国家/地区包含一个日期选择器。
  • 到目前为止,最好的解决方案是使用单一、明确的格式(例如 2013 年 3 月 10 日)。如果您尝试“本地化”字符串,您仍然会在很大一部分时间里弄错。此外,Date.prototype.toLocaleString 的实现依赖于实现,因此如果您想在所有浏览器中以一致的格式显示日期,您仍然需要手动解析日期(有些可能会使用 Tuesday, 11 March 2013,有些可能会使用 3/11/2013 和其他人2013-03-11)。

标签: php javascript jquery jquery-plugins


【解决方案1】:

对于 PHP,这应该是一个好的开始:http://php.net/manual/en/function.setlocale.php

对于 JavaScript:Display date/time in user's locale format and time offset

总而言之,大多数现代语言都很好地内置了语言环境支持。您不必自己实现此功能。这将是令人厌烦和错误的(本地化很难)。

【讨论】:

    【解决方案2】:

    如果你使用 PHP,那么 IntlDateFormatter() 可以帮助你:

    $d = new DateTime();
    
    $fmt = new IntlDateFormatter('en-US', IntlDateFormatter::SHORT, IntlDateFormatter::NONE);
    echo "US: ".$fmt->format($d)."<br/>";
    
    $fmt = new IntlDateFormatter('en-GB', IntlDateFormatter::SHORT, IntlDateFormatter::NONE);
    echo "GB: ".$fmt->format($d)."<br/>";
    
    $fmt = new IntlDateFormatter('en-AU', IntlDateFormatter::SHORT, IntlDateFormatter::NONE);
    echo "AU: ".$fmt->format($d)."<br/>";
    
    $fmt = new IntlDateFormatter('de-DE', IntlDateFormatter::SHORT, IntlDateFormatter::NONE);
    echo "DE: ".$fmt->format($d)."<br/>";
    

    输出:

    US: 2/1/18
    GB: 01/02/2018
    AU: 1/2/18
    DE: 01.02.18
    

    【讨论】:

      【解决方案3】:

      如果您想在客户端更改日期的格式,您可以尝试 JavaScript 中 Date 对象的toLocaleString 函数。 toLocaleString 将根据客户端操作系统对其位置的设置更改格式。您也不需要具有国家和日期格式的表格。

      这可以在不需要 jQuery 或任何其他插件的情况下完成。

      【讨论】:

      • 理论上不错,但实际上并不适用,因为并非所有浏览器都支持它。请不要参考 W3Schools,ECMA-262 是语言功能的权威参考,Mozilla Developer Network 也是一个很好的资源。在这种情况下,toLocaleDateString 可能是更好的建议。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      • 2012-04-25
      • 2023-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多