我尝试本地化数据输出。setLocale()in Controller Laravel
setlocale(LC_TIME, 'et_EE.utf8');
echo strftime("%H:%M %A, %d %B");
取而代之的是爱沙尼亚语我用英文格式获得它。 但是,如果我在Job类中这样做 - 一切都好。 在我的控制器我没有叫setlocale()
不再只是一次setlocale(LC_TIME, 'et_EE.utf8');
我尝试本地化数据输出。setLocale()in Controller Laravel
setlocale(LC_TIME, 'et_EE.utf8');
echo strftime("%H:%M %A, %d %B");
取而代之的是爱沙尼亚语我用英文格式获得它。 但是,如果我在Job类中这样做 - 一切都好。 在我的控制器我没有叫setlocale()
不再只是一次setlocale(LC_TIME, 'et_EE.utf8');
结帐链接,它描述了你俩的方式配置级别设置以及更改时区的飞行
Stackoverflow
问题不在于时区。为勘察:2月1日星期三在爱沙尼亚语应显示 - 1 VeebruarKolmapäev –
好的,那么你需要获得用户的时区和每次将数据转换为用户时区。请检查此代码,它将数据转换为存储在Cookie中的时区[$ new_date = \ Carbon :: createFromFormat($ format,$ date) - > setTimezone(Cookie :: get('timezone')); if($ type =='object'){ return $ new_date; } else { return $ new_date-> format($ format); }' – Webinion
您需要转换语言,或者您需要转换日期的时区? – Webinion
第一总之,对我来说这很奇怪,以至于set_locale在一个地方而不是另一个地方工作,因为php不会干涉set_locale
,因为它直接调用具有相同名称的C函数。
在Linux上,语言环境必须安装在您的系统中。 要检查哪些语言环境支持使用命令 locale -a
你必须看到这样
en_US.utf8
et_EE.utf8
列表要添加的语言环境,它不同于系统到另一个
的Ubuntu检查this
对于Arch和其他人,请编辑/etc/locale.gen
并取消注释所需语言环境。然后运行sudo locale-gen
瞧你的代码将工作..
Exacly - it从laravel中的其他类完成。但是在我称之为控制器的地方,我把结果放在日志文件中 - 而我看到的是 - echo setlocale(LC_TIME,'et_EE。UTF8' );返回给我空结果:( –
'set_locale'是php的一部分,完全不是laravel ..所以你的谈话对我来说是无意义的..这需要更多的挖掘 任何方式尝试这个答案,并告诉我它是否成功。 –
我不明白什么是你所面临的问题,你会澄清? –
我需要在爱沙尼亚Langugage(日期)的这个例子中得到结果,但是我得到了英文variant.But如果这个代码在Job类(laravel框架)中执行 - 只有当我尝试在Controller中执行时,所有ok.Problem。 –
哦,好吧.. 你能告诉我什么是底层操作系统? 在Linux中,它取决于安装的语言环境 –