它在本地服务器上正常工作,但是当我将它上传到共享主机时,它不显示相对日期,而是显示原始字符串。
代码:
Yii::$app->formatter->asRelativeTime($timestamp, 'now');
本地主机:
in 6 days
共享主机:
in {delta, plural, =1{a day} other{# days}}
已设置语言环境并正在传递时间戳。国际扩展已启用。其他格式化程序功能(即 asDate)工作正常。
它在本地服务器上正常工作,但是当我将它上传到共享主机时,它不显示相对日期,而是显示原始字符串。
代码:
Yii::$app->formatter->asRelativeTime($timestamp, 'now');
本地主机:
in 6 days
共享主机:
in {delta, plural, =1{a day} other{# days}}
已设置语言环境并正在传递时间戳。国际扩展已启用。其他格式化程序功能(即 asDate)工作正常。
我猜这是因为 PHP 国际扩展的 ICU 库过时了。我的是 4.2.1,而yii2 至少需要 ICU 版本 49 才能使用所有功能,其中可能包括 asRelativeTime()。
不能肯定地说,因为我无法在我的托管计划中更新它。
in 6 days
是本地化字符串(英文)。
in {delta, plural, =1{a day} other{# days}}
是未本地化的模板。
对于每个请求,Yii 都会尝试本地化模板。如果 Yii 由于某种原因无法本地化模板,它将输出模板。
因此可能是缺少本地化文件:检查是否vendor/yiisoft/yii2/messages
包含您的语言的文件夹和文件。并检查当前本地化是否设置为有效值。
另请阅读有关Yii2 国际化的信息。