我注意到,当用 PHP 格式化日期时IntlDateFormatter http://php.net/manual/en/class.intldateformatter.php根据语言的不同,结果可能会有很大不同。例子:
$formatter = new IntlDateFormatter("en_GB",
IntlDateFormatter::SHORT, IntlDateFormatter::NONE,
"Europe/Vienna");
$date = $formatter->format(0);
在这个例子中$date
将31/12/1969
但如果我使用 de_DE 作为语言环境$date
is 31.12.69
。使用时差异较大IntlDateFormatter::MEDIUM
:
- German:
31.12.1969
- 英语:
31 Dec 1969
有没有办法在不指定格式的情况下获得更相似的结果?
As ICU docs http://userguide.icu-project.org/formatparse/datetime say:
- SHORT 是数字,例如 12/13/52 或 3:30pm
- MEDIUM 较长,例如 Jan. 12, 1952
- LONG 更长,例如 January 12, 1952 或 3:30:32pm
- FULL 是完全指定的,例如 Tuesday, April 12, 1952 AD 或 3:30:42pm PST
因此,您可能对不断出现的问题是正确的,例如:“谁定义了这些短/中格式,以及谁决定它的外观?”。
所有类似的决定均由 CLDR 及其流程确认被描述为 http://cldr.unicode.org/index/process:
收到国家/地区和语言的数据后,来自的数据
将比较不同的来源以显示协议和
差异。最初的数据贡献通常标记为草稿;
一旦数据被审查,这可能会改变。
请注意,存储库中有两种类型的数据:
- 通用数据:内容由 CLDR 技术委员会按照其程序和流程决定。
- 对比数据:贡献者可以是个人,也可以是组织。通常通过调用公共 API 来收集数据,以
确保数据与实际使用的数据相符。数据仅
用于比较,除非有必要,否则不会改变
更新数据以匹配外部源。唯一的要求是
所有更改的数据都进行版本控制,以及版本编号方案
使用。
鼓励贡献者使用当地语言和国家
组织内部和外部的联系人,以帮助审查当前
共同数据以及任何关于增加或修改共同数据的新提案
数据。特别鼓励国家标准组织
参与数据审查过程。
也许,并不总是(在世界各地)媒体格式看起来像:12, Jan 2015
,决策是在国家层面做出的。如果您作为德国人对此有疑虑 - 您可以尝试填写变更建议单 http://cldr.unicode.org/index/bug-reports.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)