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
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
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");
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
.