IntlDateFormatter 返回错误的年份
IntlDateFormatter returning the wrong year
如果你运行下面的代码
<?php
$date = new DateTime('2019-12-30 19:45:00', new DateTimeZone('Europe/London'));
$formatter = new IntlDateFormatter(
'en_GB',
null,
null,
'Europe/London',
IntlDateFormatter::GREGORIAN,
'MMMM YYYY'
);
echo $formatter->format($date);
它会回应 December 2020
。这是 class 的错误,还是我有问题,正如我所期望的 return December 2019
根据:
http://userguide.icu-project.org/formatparse/datetime
Y 代表 "Week of Year" 的年份(不管它是什么意思),y 是我们习惯的常规年份参考。因此,要获得当前年份,请将 YYYY
替换为 yyyy
并且它应该完成工作
您以错误的方式使用了此功能。我知道 ideea 是以本地特定方式格式化日期和时间。
像英国人那样写日期和时间:
Monday, 30 December 2019 at 19:45:00 Greenwich Mean Time
在美国特朗普先生会说:
Monday, December 30, 2019 at 7:45:00 PM Greenwich Mean Time
对于德国,我会这样说:
Montag, 30. Dezember 2019 um 19:45:00 Mittlere Greenwich-Zeit
Torwald Linus prolly 在芬兰会说:
måndag 30 december 2019 kl. 19:45:00 Greenwichtid
最后在洪都拉斯,Pedro de Alvarado 会说:
lunes 30 de diciembre de 2019, 19:45:00 hora del meridiano de Greenwich
(我喜欢这个功能:))
因为如果您想要 2019-12-30 这样的结果,您可能会使用格式
$date = new DateTime('2019-12-30 19:45:00', new DateTimeZone('Europe/London'));
echo $date->format('Y-m-d');
如果你运行下面的代码
<?php
$date = new DateTime('2019-12-30 19:45:00', new DateTimeZone('Europe/London'));
$formatter = new IntlDateFormatter(
'en_GB',
null,
null,
'Europe/London',
IntlDateFormatter::GREGORIAN,
'MMMM YYYY'
);
echo $formatter->format($date);
它会回应 December 2020
。这是 class 的错误,还是我有问题,正如我所期望的 return December 2019
根据: http://userguide.icu-project.org/formatparse/datetime
Y 代表 "Week of Year" 的年份(不管它是什么意思),y 是我们习惯的常规年份参考。因此,要获得当前年份,请将 YYYY
替换为 yyyy
并且它应该完成工作
您以错误的方式使用了此功能。我知道 ideea 是以本地特定方式格式化日期和时间。
像英国人那样写日期和时间:
Monday, 30 December 2019 at 19:45:00 Greenwich Mean Time
在美国特朗普先生会说:
Monday, December 30, 2019 at 7:45:00 PM Greenwich Mean Time
对于德国,我会这样说:
Montag, 30. Dezember 2019 um 19:45:00 Mittlere Greenwich-Zeit
Torwald Linus prolly 在芬兰会说:
måndag 30 december 2019 kl. 19:45:00 Greenwichtid
最后在洪都拉斯,Pedro de Alvarado 会说:
lunes 30 de diciembre de 2019, 19:45:00 hora del meridiano de Greenwich
(我喜欢这个功能:))
因为如果您想要 2019-12-30 这样的结果,您可能会使用格式
$date = new DateTime('2019-12-30 19:45:00', new DateTimeZone('Europe/London'));
echo $date->format('Y-m-d');