簡體   English   中英

Laravel與Homestead的strftime無法正常工作

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM