Il existe deux fonctions de formatage de l'heure en PHP : date() et gmdate(). La description dans la documentation officielle est :
date -- formater une heure/date locale
gmdate -- formater une date/heure GMT/UTC, renvoyée par Greenwich. Temps moyen (GMT).
Par exemple, le fuseau horaire dans lequel nous nous trouvons actuellement est +8, alors l'heure renvoyée par le serveur exécutant le script suivant devrait être comme ceci :
L'heure actuelle est supposée être 2007-03-14 12:15:27
echo date( 'Ymd H:i:s ', time()); La sortie est : 2007-03-14 12:15:27
echo gmdate('Ymd H:i:s', time()); -03-14 04:15:27
Mais ce n'est que le résultat de l'exécution de PHP sous Linux+Apache. S'il est exécuté sous Windows, les deux fonctions renvoient : 2007-03-14 04:15:27.
Par conséquent, nous devrions donner une manière d'écrire compatible, utiliser gmdate uniformément et définir manuellement le fuseau horaire actuel. La méthode d'écriture est améliorée comme suit :
echo gmdate('Ymd H:i:s', time() + 3600 * 8. );
De cette façon, quelle que soit la situation sous Linux + Les résultats corrects sont obtenus à la fois sous Apache et sous Windows. Bien sûr, il y a un autre avantage à écrire de cette façon lorsque le site Web est destiné au monde entier, uniquement à l'utilisateur du site. doit définir le fuseau horaire, et le programme calculera automatiquement l'heure en fonction du fuseau horaire défini par l'utilisateur. L'heure de publication des informations dans la base de données stocke uniquement l'heure générée par l'heure actuelle (), puis l'heure de publication vue dans. Le fuseau horaire de la Chine +8 est : 2007-03-14 12:15:27, puis les utilisateurs en Europe +2 fuseau horaire voient L'heure de publication de ces informations est : 2007-03-14 06:15:27, donc l'heure de les informations correspondront toutes correctement.