J'utilise la fonction date $now=date("Y-m-d H:i:s");
en php 5.6.30, La sortie du navigateur est string(19) "2017-04-21 02:54:54"
, c'est anormal.
L'ensemble de php.ini est date.timezone = PRC
Heure système Centos 7:
[root@localhost sync]# date
Fri Apr 21 14:53:20 CST 2017
Alors que j'ai été installé le PHP 7.0.16 dans le même système, php.ini a la même configuration, mais la sortie de date est normale dans la fonction de date (heure à 24 chiffres). Pourquoi cela se produit et comment laisser la date fonctionner normalement.
3 réponses
Essayez ce code ci-dessous pour le fuseau horaire de la date
<?php
date_default_timezone_set('Asia/Shanghai');
echo date("Y-m-d H:i:s");
?>
Il s'agit d'un problème de fuseau horaire.
Dans votre php.ini, vous avez le fuseau horaire PRC
(Chine) défini, mais la sortie de l'heure système donne l'heure en CST
(Amérique).
En d'autres termes: Votre code PHP vous donne en fait le format 24 heures, mais dans un fuseau horaire différent, là où il se trouve en fait 02:54:54
Si vous avez besoin d'obtenir l'heure dans un fuseau horaire différent (comme UTC
), vous pouvez le définir comme ça:
date_default_timezone_set('UTC');
Si vous avez besoin d'un autre fuseau horaire local, vous pouvez consulter les valeurs possibles dans la liste des fuseaux horaires pris en charge dans la documentation PHP
J'ajoute le code à php.ini date.timezone = Asia/Shanghai
, et installez chrony et démarrez-le pour synchroniser. Ça marche.
Questions connexes
De nouvelles questions
php
PHP est un langage de script largement utilisé, de haut niveau, dynamique, orienté objet et interprété, principalement conçu pour le développement Web côté serveur. Utilisé pour les questions sur le langage PHP.