2015-10-01 15 views
12

Utilizzo la struttura Lumen. Come posso cambiare il fuso orario in Europa/Parigi CEST?Modifica fuso orario in Lumen o Laravel 5

ho aggiunto una varaible nel mio file .env:

APP_TIMEZONE=Europe/Paris 

Ma questo non funziona. Qual è il modo giusto per aggiornare il fuso orario?

+1

Questo dovrebbe essere sufficiente in Lumen 5.2 almeno. Potrebbe essere necessario impostare il file config/app.php per utilizzare la var env ('APP_TIMEZONE') in Laravel. –

+1

Funziona anche su Lumen 5.1. Dopo molti giorni ho finalmente capito che non è sufficiente cambiare i fusi orari del server e del DB - A Lumen non interesserà fino a quando non avrai impostato il fuso orario sul file .env – Bizarro

risposta

23

è possibile impostare il fuso orario app configurando app.php file in config cartella.

Per modificare il fuso orario, modificare il valore di fuso orario nel file app.php.

Questo è scritto in questa sezione

|-------------------------------------------------------------------------- 
| Application Timezone 
|-------------------------------------------------------------------------- 
| 
| Here you may specify the default timezone for your application, which 
| will be used by the PHP date and date-time functions. We have gone 
| ahead and set this to a sensible default for you out of the box. 
| 

Per me sto usando Asia/Dhaka come il mio tempo di applicazione orario.

Ecco la sintassi appropriata:

'timezone' => 'Asia/Dhaka' 

Spero che questo vi aiuterà.

+1

Ho provato anche in questo modo. Non funziona – StormTrooper

+0

Funziona bene "timezone" => "Europa/Amsterdam", Thnx! – Bas

+1

Usa l'elenco PHP dei fusi orari supportati: http://php.net/manual/it/timezones.php –

4

Prova questo - Crea una cartella "config" nella configurazione di lumen, quindi crea il file app.php all'interno di questa directory "config". essa sarà simile a questa -

<?php return ['app.timezone' => 'America/Los_Angeles']; 

Quindi è possibile accedere al suo valore in un posto come questo -

$value = config('app.timezone'); 

Se non funziona, è possibile aggiungere questo le linee in routes.php

date_default_timezone_set('America/Los_Angeles'); 

Questo ha funzionato per me!

+0

Questo non è corretto - l'inserimento di 'app.timezone' nel file di configurazione' app.php' è ridondante dato che la parte 'app' di' config ('app.timezone') 'si riferisce al nome del file in' config/'dir. –

+0

Okay @MattHumphrey, puoi modificare la mia risposta se ti sembra scorretta. –

2

Nel mio caso (la lettura di una data da un db MySQL in un 5.1 progetto di Lumen) l'unica soluzione che ha funzionato sta usando Carbon per impostare fuso orario di variabili:

$carbonDate = new Carbon($dateFromDBInUTC); 
    $carbonDate->timezone = 'America/New_York'; 
    return $carbonDate->toDayDateTimeString(); // or $carbonDate->toDateTimeString() for ISO format 

Utilizzando DB_TIMEZONE=-05:00 nel file .env quasi funzionato ma non gestisce le modifiche all'ora legale.

L'utilizzo di APP_TIMEZONE=America/New_York nel file .env non ha avuto alcun effetto su un valore di fuso orario recuperato in un'applicazione Web Lumen 5.1 da un database MySQL, ma funziona in Lavarel 5.1.

Anche Lumen non ha letto affatto il file [lumen_project]/config/app.php che ho creato (non si è lamentato quando ho inserito un errore di sintassi lì).

L'utilizzo di date_default_timezone_set non ha funzionato neanche.

+1

Grazie per questo. Ho provato molte altre soluzioni (incluse quelle che hai elencato nel tuo riassunto) e niente ha funzionato. L'impostazione del fuso orario all'interno del Controller come variabile Carbon sembra aver funzionato per ora. –

0

fusi orari utilizzare PHP da manuale php Php time zones

Per esempio la mia ho cambiato dal valore UTC in config/app.php con

'timezone' => 'Africa/Nairobi', 
1

Non vi resta che modificare il file de app.php nella directory config Basta trovare righe successive

/* 
|-------------------------------------------------------------------------- 
| Application Timezone 
|-------------------------------------------------------------------------- 
| 
| Here you may specify the default timezone for your application, which 
| will be used by the PHP date and date-time functions. We have gone 
| ahead and set this to a sensible default for you out of the box. 
| 
*/ 

'timezone' => 'UTC', 

E .. chage per:

'timezone' => 'Europe/Paris', 
0

Nel file .env di Lumen, specificare i fusi orari. Per l'India, sarebbe come:

APP_TIMEZONE = 'Asia/Calcutta' 
DB_TIMEZONE = '+05:30'