2015-10-01 1 views
12

J'utilise le cadre Lumen. Comment changer de fuseau horaire en Europe/Paris CEST?Modifier le fuseau horaire dans Lumen ou Laravel 5

J'ai ajouté un varaible dans mon dossier .env:

APP_TIMEZONE=Europe/Paris 

Mais ce travail ne marche pas. Quelle est la bonne façon de mettre à jour le fuseau horaire?

+1

Cela devrait être suffisant dans Lumen 5.2 au moins. Vous devrez peut-être définir votre fichier config/app.php pour utiliser la variable env ('APP_TIMEZONE') var dans Laravel. –

+1

Cela fonctionne aussi sur Lumen 5.1. Après plusieurs jours, j'ai finalement réalisé qu'il ne suffisait pas de changer les fuseaux horaires du serveur et de la base de données - Lumen ne s'en souciera pas tant que vous n'aurez pas défini le fuseau horaire sur le fichier .env – Bizarro

Répondre

23

Vous pouvez définir votre fuseau horaire application en configurant app.php fichier dans dossier config.

Pour modifier le fuseau horaire, modifiez la valeur de fuseau horaire dans le fichier app.php.

Ce qui est écrit dans cette section

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

Pour moi, je suis en utilisant Asie/Dhaka que mon temps d'application zone.

Voici la syntaxe appropriée:

'timezone' => 'Asia/Dhaka' 

Espérons que cela aidera.

+1

J'ai aussi essayé. Ne fonctionne pas – StormTrooper

+0

Fonctionne bien 'timezone' => 'Europe/Amsterdam', Thnx! – Bas

+1

Utilisez la liste PHP des fuseaux horaires pris en charge: http://php.net/manual/en/timezones.php –

4

Veuillez essayer ceci - Créez un répertoire 'config' dans votre configuration lumen, puis créez le fichier app.php dans ce répertoire 'config'. il ressemblera à ceci -

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

Ensuite, vous pouvez accéder à son rapport qualité-prix comme celui-ci -

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

Si cela ne fonctionne pas, vous pouvez ajouter ces lignes dans routes.php

date_default_timezone_set('America/Los_Angeles'); 

Cela a fonctionné pour moi!

+0

Cela n'est pas correct - mettre 'app.timezone' dans le fichier de configuration' app.php' est redondant car la partie 'app' de' config ('app.timezone') 'fait référence au nom de fichier dans' ' config/'dir. –

+0

Okay @MathHumphrey, vous pouvez modifier ma réponse si elle vous semble incorrecte. –

2

Dans mon cas (lire une date à partir d'un db MySQL dans un projet Lumen 5.1), la seule solution qui a fonctionné utilise Carbon pour définir le fuseau horaire de variables

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

En utilisant DB_TIMEZONE=-05:00 dans le fichier .env presque travaillé mais ne gère pas les modifications DST. L'utilisation du APP_TIMEZONE=America/New_York dans le fichier APP_TIMEZONE=America/New_York n'a eu aucun effet sur une valeur de fuseau horaire récupérée dans une application Web Lumen 5.1 à partir d'une base de données MySQL, mais elle fonctionne dans Lavarel 5.1.

Aussi Lumen n'a pas lu du tout le fichier [lumen_project]/config/app.php que j'ai créé (il ne s'est pas plaint quand j'ai mis une erreur de syntaxe là).

L'utilisation de date_default_timezone_set ne fonctionnait pas non plus.

+1

Merci pour ça. J'ai essayé beaucoup d'autres solutions (y compris celles que vous avez listées dans votre résumé) et rien n'a fonctionné. Définir le fuseau horaire dans le contrôleur comme une variable de carbone semble avoir fonctionné pour l'instant. –

0

Utiliser fuseaux horaires php de manuel php Php time zones

Par exemple moi j'ai changé de la valeur UTC dans config/app.php avec

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

Il vous suffit d'éditer le fichier de app.php dans le répertoire config trouver juste à côté des lignes

/* 
|-------------------------------------------------------------------------- 
| 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', 

Et .. chage pour:

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

Dans le fichier .env de Lumen, spécifiez les fuseaux horaires. Pour l'Inde, ce serait comme:

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