2016-06-09 1298 views
5

我有一个基于CET地区的项目。我在config/app.php中设置了CET, 但基数中的所有透视时间戳均以UTC时间存储?如何为时间戳设置Laravel Carbon时区?

我该如何为时间戳设置“全局”时区?

我做了这个测试:

<?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 

TNX Ÿ

回答

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

它被命名为'date.timezone =澳大利亚/ Melbourne'的php.ini文件中设定。感谢您指点功能。 –

相关问题