我注意到,在使用PHP IntlDateFormatter
格式化日期时,结果可能会因语言而异。例如:
$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
31 Dec 1969
有没有办法在不指定格式的情况下获得更多类似的结果?
答案 0 :(得分:1)
正如ICU docs所说:
- SHORT是数字,例如12/13/52或3:30 pm
- MEDIUM更长,例如1952年1月12日
- LONG更长,例如1952年1月12日或下午3:30:32
- 已完全指定,例如公元1952年4月12日星期二或太平洋标准时间下午3:30:42
醇>
所以你可能会提出这样的问题:“谁定义了那些短/中等格式,谁来决定它的外观?”。
CLDR确认所有类似决定及其流程is described as:
收到国家/地区和语言的数据后,数据来自 将比较不同的来源以显示协议和 差异。初始数据贡献通常标记为草案; 一旦数据被审查,这可能会改变。
请注意,存储库中有两种类型的数据:
- 通用数据:内容由CLDR技术委员会根据其程序和流程决定。
- 比较数据:贡献者可以是个人或组织。通常通过调用公共API来收集数据 确保数据与实际使用的数据相匹配。这些数据只是 为了比较,除非必要,否则不会更改 更新数据以匹配外部源。唯一的要求是 所有更改的数据都要进行版本控制,以及版本编号方案 使用。
鼓励贡献者使用当地语言和国家/地区 联系,在组织内外,以帮助审查当前 共同数据和任何增加或修改共同的新提案 数据。特别鼓励国家标准组织 参与数据审查过程。
可能并非总是(世界各地)中等格式看起来像:12, Jan 2015
,并且决定是在国家层面做出的。如果您作为德国人对此有疑虑 - 您可以尝试fill a ticket with change proposal。