2016-06-09 13 views
5

Mam projekt, który jest pierwotny w regionie CET. Ustawiłem CET w config/app.php, , ale wszystkie znaczniki czasu w bazie są przechowywane w czasie UTC?Jak ustawić strefę czasową Laravel Carbon na znaczniki czasu?

Jak ustawić "globalną" strefę czasową dla sygnatur czasowych?

zrobiłem tego testu:

<?php 
$timezone = date_default_timezone_get(); 
echo "The current server timezone is: " . $timezone; 
echo "<br />".date('m/d/Y h:i:s a', time()); 

$mytime = Carbon\Carbon::now(); 
echo "<br />".$mytime->toDateTimeString(); 
?> 

i oto wynik:

The current server timezone is: CET 
06/09/2016 12:06:04 pm 
2016-06-09 11:06:04 

tnx y cyfrowy

Odpowiedz

3

Można to osiągnąć z mutatorów

public function getCreatedAtAttribute($value) 
{ 

return Carbon::createFromTimestamp(strtotime($value)) 
    ->timezone(Config::get('app.timezone')) 
    ->toDateTimeString(); //remove this one if u want to return Carbon object 
} 
9

Carbon używa domyślne DateTime PHP obiektu, więc użyć date_default_timezone_set() funkcji, na przykład: date_default_timezone_set('Europe/London');

+0

jest on php.ini ustawienie plik o nazwie' date.timezone = Australia/Melbourne'. Dzięki za wskazanie funkcji. –

Powiązane problemy