2016-06-09 33 views
5

Ho un progetto basato principalmente nella regione CET. Ho impostato il CET in config/app.php, ma tutti i timestamp di pivot in base sono memorizzati in ora UTC?Come impostare il fuso orario di Laravel Carbon per i timestamp?

Come posso impostare il fuso orario "globale" per i timestamp?

ho fatto questa prova:

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

ed ecco risultato:

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

TNX Y

risposta

3

È possibile ottenere con mutators

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 utilizza il predefinito DateTime oggetto PHP, in modo da utilizzare il date_default_timezone_set() funzione, ad esempio: date_default_timezone_set('Europe/London');

+0

E 'un ambiente file php.ini chiamato' date.timezone = Australia/Melbourne'. Grazie per aver indicato la funzione. –