使用IntlDateFormatter设置PHP日期格式
我注意到,当使用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
$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尝试改变格式,但我认为你不会成功。