2016-04-04 15 views
1

Laravel web sitesini geliştiriyorum. Varsayılan saat dilimini config/app.php'da ayarlıyorum, ancak kullanıcının zaman dilimi ile ilgili bilgilerin gösterilmesi gereken bir bölüm var. Kullanıcı saat dilimini kullanmak için belirli bir denetleyici için bir seçenek var mı?Laravel, bir denetleyici için dinamik saat dilimi ayarladı

+0

Sorunuz biraz belirsizdir. Uygulamanızın saat diliminden (potansiyel olarak kullanıcı tarafından sağlanan) bir zaman dilimi değerine bir tarih dönüştürmek için "$ user-> created_at-> setTimezone ('America/New_York')' gibi bir şeyler yapabilirsiniz. – ceejayoz

cevap

3

İsteğinizdeki herhangi bir noktada yapılandırma değerlerini ayarlamak için config() yardımcısını kullanabilirsiniz. Bu değişiklik yalnızca bu talebi etkiler.

Bu durumda, bir seçenek, yapıcının içindeki yapılandırma ayarını denetleyicinize güncellemek olacaktır. Ardından, o denetleyici tarafından işlenen tüm istekler, güncelleştirilmiş saat dilimi ayarını kullanır.

class MyController extends Controller 
{ 
    public function __construct() 
    { 
     config(['app.timezone' => 'America/Chicago']); 
    } 
} 

Bu ifadeyi, daha genel veya ayrıntılı denetim gerektiğinden, hemen hemen her yere taşıyabilirsiniz. Her kullanıcı için yerel saati göstermek istiyorum ve laravel tarihleri ​​(Carbon) kullanırsanız

0

, böyle bir şey yapabilirsiniz:

if (Auth::check()) { 
    $object->created_at->setTimezone(Auth::user->timezone) 
}