La base de données utilise le type de champ datetime pour enregistrer l'heure. Comment définir le fuseau horaire du serveur, le fuseau horaire mysql et le fuseau horaire PHP ?
Option 1.
Tous les serveurs utilisent le fuseau horaire UTC de manière uniforme. Le programme PHP utilise le fuseau horaire UTC. L'heure de type datetime écrite dans la base de données est UTC, et elle est extraite et convertie dans le fuseau horaire local. .
Option 2.
Le fuseau horaire de tous les serveurs peut être défini arbitrairement, et le fuseau horaire du programme peut être défini arbitrairement. Cependant, tous ceux impliquant le stockage de l'heure utilisent le type int pour stocker les horodatages.
Pourquoi ne définissez-vous pas votre base de données sur
Asia/Shanghai
ce fuseau horaire pour PHP ?Le fuseau horaire du serveur doit être unifié. Habituellement, j'enregistre les horodatages dans la base de données. Parce que je trouve pratique de rechercher. Pour les visites transfrontalières. Effectuez simplement le traitement correspondant lors du formatage de l'horodatage.
Seul l'horodatage est recommandé
Enfin, je comprends pourquoi l'heure doit être horodatée. Il s'avère que c'est à cause de problèmes de fuseau horaire. Cependant, la classe carbon de Laravel semble avoir résolu ce problème. Vous pouvez convertir le format d'heure à volonté. Bien sûr, les performances d'horodatage sont les plus puissantes, en particulier lors de la recherche, le type int est beaucoup plus efficace que datetime.
À proprement parler, peu importe où vous vous trouvez sur terre, l'horodatage est le même à tout moment. Par exemple, l'horodatage 1452783600 correspond à 16 heures à Paris et à 7 heures à San Francisco. Ceci est avantageux pour les applications distribuées en ligne et côté client pour suivre uniformément les informations de temps.
+8 heures. De plus, il est préférable d'enregistrer tous les formats d'heure avec des horodatages. Les horodatages n'auront pas de problèmes de fuseau horaire.
À proprement parler, peu importe où vous vous trouvez sur terre, l'horodatage est le même à tout moment.
1. Utilisez
datetime
,php/mysql时区设置为UTC+08
2.使用int,直接存时间戳,显示的时候再使用
date
pour le formater