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.

0
Carey 21 avril 2017 à 10:04

3 réponses

Meilleure réponse

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");
?>
1
Hanky Panky 21 avril 2017 à 07:31

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

3
Pharaoh 21 avril 2017 à 07:37

J'ajoute le code à php.ini date.timezone = Asia/Shanghai, et installez chrony et démarrez-le pour synchroniser. Ça marche.

0
Carey 21 avril 2017 à 07:55