【发布时间】:2019-12-30 07:31:34
【问题描述】:
我有这个简单的代码,以前可以正常工作:
<?php
$dateFormatted = \MessageFormatter::formatMessage(
'en_US', "{0, date, d MMMM YYYY}", [new \DateTime()]
);
var_dump($dateFormatted); // 28 December 2019
但从 2019 年 12 月 29 日开始,它显示的是明年的日期:
var_dump($dateFormatted); // 29 December 2020
直到 2050 年,我检查的每一年都会发生这种情况。据我所知,它只发生在去年 12 月的几天,但我不确定。 2018 年不受影响。为什么会发生这种情况,有什么解决办法吗?
php 7.1 版
更新:看起来strftime 有同样的问题
Upd2:strftime 显示正确的年份,%Y 但不是 %G
【问题讨论】:
-
这是一个非常好的问题。但
echo strftime("%d %B %Y");没问题你的strftime例子是什么? -
是的,
echo strftime("%d %B %Y");返回正确的日期,这很奇怪,因为%G明年仍会返回。谢谢指点
标签: php date formatting strftime