2016-06-09 10 views
5

У меня есть проект, который базируется в регионе CET. Я установил CET в config/app.php, , но все временные метки поворота в базе хранятся в UTC?Как установить временной диапазон времени Laravel для временных меток?

Как я могу установить «глобальный» часовой пояс для временных меток?

я сделал этот тест:

<?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(); 
?> 

и вот результат:

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

Тпх Y

ответ

3

Вы можете достичь его с мутаторов

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

углерода использует по умолчанию DateTime PHP объект, так что используйте date_default_timezone_set() функцию, например: date_default_timezone_set('Europe/London');

+0

это php.ini параметр файл с именем' date.timezone = Австралия/Melbourne'. Спасибо за указание функции. –

1

Похоже, решение заключается в использовании не «ЦЭТ», но один из явных часовых поясов, например: «Европа \ Минск "

PHP Timezones

Timezones in Laravel 4