[英]Laravel strftime with Homestead ain't working
我在使用Laravel和Homestead进行本地化格式化日期时遇到了很多麻烦(我不知道homestead是否有任何某种服务器配置使其无法工作,但这就是我的意思)。 我想互联网上的任何人都在为同一问题而苦苦挣扎。 我一直在寻找答案长达数小时之久,而没有找到任何解决方案的地方。这是我的代码。
public function formated_start()
{
setlocale(LC_ALL, 'sv_SE');
return strftime('%A %H:%M', strtotime($this->start));
}
我也尝试过使用laravel
public function formated_start()
{
App::setLocale('sv_SE')
return strftime('%A %H:%M', strtotime($this->start));
}
仍然具有相同的结果,并且没有任何变化,在我的语言中,%A应该是星期几,在这种情况下,瑞典语仍然是英语。
Homestead提供了一个Ubuntu系统。 因此,首先使用locale -a
检查系统上可用的locale -a
。 瑞典语的语言环境可能名为sv_SE.iso88591
或sv_SE.utf8
。 如果尚未安装,则可以使用以下命令进行安装:
sudo locale-gen sv_SE sv_SE.utf8
用setlocale();
安装第一个解决方案后setlocale();
应该管用。 这将是生成日期的PHP方法 。
在安装了所描述的语言环境后,不要忘记重启服务器
sudo nginx restart
Laravel方式
对于Laravel方式,您需要自己生成本地人。 首先在/app/lang/sv/days.php
添加一个语言环境文件, /app/lang/sv/days.php
包括:
<?php
return array(
'Monday' => 'måndag',
'Tuesday' => 'tisdag',
'Wednesday' => '..',
'Thursday' => '..',
'Friday' => '..',
'Saturday' => 'lördag',
'Sunday' => '..',
);
现在您可以将App::setLocale()
与Lang::get()
:
App::setLocale('sv');
echo Lang::get(sprintf('days.%s', date('l')));
这是更复杂的方法,但是如果您将Laravel托管在无法生成语言环境的共享托管环境中,则可能是可行的方法。
至少在Windows中,这似乎对我有用。
setlocale(LC_ALL, 'sv_SE', 'Swedish', 'swedish');
如果您的问题一般,而不是专门使用strftime,您可以尝试使用Laravel4-lang ,它是通过composer安装的。 添加到composer.json
文件:
"require": { "laravel/framework": "4.2.*", "caouecs/laravel4-lang": "dev-master" },
然后更新软件包:
composer update caouecs/laravel4-lang
更新
这也真的很好: https : //github.com/jenssegers/laravel-date
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.