首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IntlDateFormatter php日本年转换2019年返回假

IntlDateFormatter php日本年转换2019年返回假
EN

Stack Overflow用户
提问于 2019-10-09 14:13:37
回答 1查看 248关注 0票数 1

我想皈依

代码语言:javascript
运行
复制
令和元年8月 = 2019年8月

参考文献日期

我来拿这些

为此,我尝试了下面的代码"平成31年8月“,返回2019年,但根据参考文献,如果令和元年8月,请建议我有什么解决方案,这样我就可以像引用一样设置代码。

代码语言:javascript
运行
复制
$formatter = new IntlDateFormatter(
    'ja_JP@calendar=japanese',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'Europe/Madrid',
    IntlDateFormatter::TRADITIONAL,
    'Gy年M月'
);
$ts = $formatter->parse('令和元年8月');
//$ts = $formatter->parse('平成31年8月');
var_dump($ts, date('Y-m', $ts));

_

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-10 01:30:14

似乎有两个问题。

  1. 日本的时代制度不是按年变化的,而是在一年中的某个日期之前转换的。

平成(Heisei)在2019-04-30结束,令和(Reiwa)在2019-05-01开始,因此如果您需要在像2019年这样的交换年中转换特定日期,您所引用的年度表就不完整。

例如,1月平成31和12月令和1都是AD 2019年。因此,当您只转换年份部分时,它们将显示相同的结果。

  1. PHP中并不总是有最新的表。

在我的本地,“$令和元年->月(‘月8’);”返回了1970-01,Unix时代的时间可能来自于空值。之所以会发生这种情况,是因为我使用的PHP还不知道日本时代已经变成了令和。

IntlDateFormatter在php_intl扩展中,它调用ICU库。ICU图书馆支持新时代名称令和的verion 64.2

您可以使用"ICU版本“检查phpinfo(),如果该版本小于64.2,它将无法正确地转换令和。

代码语言:javascript
运行
复制
$ php --info | grep "ICU version"
ICU version => 61.1

如果您无法在最新可用的PHP上找到64.2+,您可能必须自己编译intl扩展和后续的ICU库。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58306154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档