[英]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.