web-dev-qa-db-fra.com

date_default_timezone_set ('UTC') ne fonctionne pas

Cela semble être bizarre mais je vérifie déjà tout, et il se passe encore une chose étrange.

Je ne peux pas changer le fuseau horaire de mes scripts php .

Premières choses d'abord: ce que j'ai fait ressemblait à ceci:

<?php
date_default_timezone_set('UTC');
echo '<br>';
echo date('Y-m-d H:i:s');
?>

cela semble bien fonctionner lorsque j'ai essayé ceci sur un test http://codepad.org/rpYZ0flA .

Le fuseau horaire de mon serveur est défini sur UTC + 8: 00 Taipei, mais lorsque j'ai essayé le code ci-dessus, il ne fonctionne pas vraiment. Il affiche toujours mon date_heure actuelle dans le fuseau horaire de mon serveur, sans suivre le code ci-dessus.

Et voici la configuration php.ini de mon serveur:

date/time support                    enabled
"Olson" Timezone Database Version   2012.3
Timezone Database                   internal
Default timezone                     Europe/Berlin 

Pourquoi cela se passe? Est-ce déjà un bug? Ou erreur sur server_setup ou j'ai juste manqué quelque chose dans mon code?

Je vous remercie.

REMARQUE: Mon environnement est un Windows 7N s'exécutant sous VM avec PHP 5.4.4.

FIX:

J'ai eu le correctif en changeant manuellement le php.ini

11
Mp de la Vega

Essaye ça 

<?php 
echo date('Y-m-d H:i:s T', time()) . "\n";
date_default_timezone_set('UTC');
echo date('Y-m-d H:i:s T', time()) . "\n";

vous trouverez ici le résultat du test http://codepad.org/gc5oYnLW

3
sas

Si vous voulez seulement le temps en secondes depuis l’époque Unix (1er janvier 1970 00:00:00 GMT) avec le fuseau horaire. Utilisez le code ci-dessous:

<?php
date_default_timezone_set("UTC"); 
time()+date("Z");
2
Rafael Keller

Cela devrait fonctionner sans aucun problème.

En cas de doute, vérifiez-le avec ce code:

<?php 
date_default_timezone_set('America/Virgin');
echo date('Y-m-d H:i:s T') . "\n";
date_default_timezone_set('UCT');
echo date('Y-m-d H:i:s T') . "\n";

Voici un aperçu du codepad pour votre commodité.

Le retour ressemblera à ceci (avec la date et l'heure mises à jour):

2017-12-11 03:09:58 AST
2017-12-11 07:09:58 UCT

Si cela échoue, revérifiez la configuration de votre serveur… en commençant par votre fichier PHP.ini.

0
e-sushi