Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用IntlDateFormatter设置PHP日期格式_Php_Date_Internationalization - Fatal编程技术网

使用IntlDateFormatter设置PHP日期格式

使用IntlDateFormatter设置PHP日期格式,php,date,internationalization,Php,Date,Internationalization,我注意到,当使用PHP格式化日期时,根据语言的不同,结果可能会非常不同。例如: $formatter = new IntlDateFormatter("en_GB", IntlDateFormatter::SHORT, IntlDateFormatter::NONE, "Europe/Vienna"); $date = $formatter->format(0); 在本例中,$date将是3

我注意到,当使用PHP格式化日期时,根据语言的不同,结果可能会非常不同。例如:

$formatter = new IntlDateFormatter("en_GB",
                        IntlDateFormatter::SHORT, IntlDateFormatter::NONE,
                        "Europe/Vienna");

$date = $formatter->format(0);
在本例中,
$date
将是
31/12/1969
,但如果我使用de_de作为区域设置,
$date
31.12.69
。使用
IntlDateFormatter::MEDIUM时,差异更大:

  • 德语:
    31.12.1969
  • 中文:
    1969年12月31日
有没有一种方法可以在不指定格式的情况下获得更相似的结果?

例如:

  • SHORT是数字,例如12/13/52或3:30pm
  • 中等偏长,如1952年1月12日
  • LONG更长,例如1952年1月12日或下午3:30:32
  • 完全指定为FULL,例如公元1952年4月12日星期二或太平洋标准时间下午3:30:42
  • 因此,你可能对不断上升的问题是正确的,比如:“谁定义了这些短/中格式,谁决定它的外观?”

    所有此类决策均由CLDR确认,其流程如下:

    一旦收到国家和语言的数据,来自 将比较不同来源,以显示协议和 差异。初始数据贡献通常标记为草稿; 一旦数据被审查,这可能会被更改

    请注意,存储库中有两种类型的数据:

    • 通用数据:内容由CLDR技术委员会根据其程序和流程决定
    • 比较数据:贡献者可以是个人或组织。通常通过调用公共API来收集数据,以 确保数据与实际使用的数据相匹配。数据只是 用于比较,除非必要,否则不会更改 更新数据以匹配外部源。唯一的要求是 对所有更改的数据进行版本控制,以及版本编号方案 被使用
    鼓励投稿人使用当地语言和国家语言 组织内外的联系人,以帮助审查当前的 通用数据和任何增加或修改通用数据的新提案 数据。特别是鼓励国家标准组织 参与数据审查过程


    也许,并非总是(在世界各地)媒体格式会是这样的:
    12015年1月
    ,决策是在国家层面做出的。如果你,作为德国人,对此有顾虑,你可以试试。

    我不确定是否会理解你。你期望的是什么行为?你的意思是“有没有办法让世界上所有的国家使用相同的日期格式”?这是一个政治问题,不是一个编码问题,我希望有类似的格式。谁给我下的定义是,德语31.12.69是短日期格式,31.12.1969是中等格式?我希望1969年12月31日的格式是德国格式,1969年12月31日的格式是英国格式,格式相同。你对“相似”的想法可能与其他人的想法以及ICU的决定不同。你可以加入ICU尝试改变格式,但我认为你不会成功。