Le stockage dans une base de données de fuseau horaire
Je serai à l'aide de MySQL et PHP, et besoin de stocker le fuseau horaire dans la DB. Passé un peu de lecture sur, et il semble que je dois utiliser quelque chose comme America/Los_Angeles
, et pas PST
, Pacific Standard Time
, PST8PDT
, +02.00
, etc.
Dois-je ranger l'ensemble de la America/Los_Angeles
chaîne, ou est-il une sorte d'identification entier pour elle comme https://stackoverflow.com/a/11580459/1032531 décrit pour le c#? Si la chaîne qui, quel est le nombre maximum de caractères?
OriginalL'auteur user1032531 | 2015-11-01
Vous devez vous connecter pour publier un commentaire.
Le fuseau horaire chaînes de caractères comme
America/Halifax
etAsia/Kolkata
se référer à des entrées dans le soi-disant zoneinfo base de données. Lisez ceci. https://www.iana.org/time-zones Il est actuellement maintenu par l'Internet Assigned Numbers Authority. Il change beaucoup de choses, parce que son responsable a du mal à suivre les changements de l'heure d'été règles et d'autres temporo-politique des choses.Sur les systèmes de type UNIX les entrées sont stockées dans un répertoire du système de fichiers de la hiérarchie, et pas d'un numéro de code.
Vous avez demandé:
Oui.
Non, pas si vous voulez que votre application et de base de données à l'avenir. Il y a un time_zone_id dans le cadre de MySQL qui contient les zoneinfo de données, mais personne n'a fait des promesses au sujet de garder ces chiffres inchangés.
La chaîne la plus longue dans le courant (2015g) de la base de données est
America/Argentina/ComodRivadavia
. C'est de 32 caractères de long. Il est probablement judicieux d'utiliser lesVARCHAR(64)
pour stocker cette information de sorte que vous ne faites jamais fonctionner.Par la voie, WordPress offre à l'utilisateur une liste de choix (liste déroulante) de temps disponible des noms de la zone, et stocke le choix de l'utilisateur sous forme de texte.
http://www.iana.org/time-zones
OriginalL'auteur O. Jones
Vérifier ici DateTime De MySql
Vous devez ajouter une nouvelle colonne dans la table pour garder votre fuseau horaire et lors de l'extraction des informations de convertir votre fuseau horaire.
si vous avez besoin de savoir exactement à quelle heure de la zone avant de convertir votre base de données de votre datetime vous avez besoin de le garder, car la Base de données automatiquement convertir votre datetime dans la zone serveur de temps et de les stocker.
Je veux dire, dois-je utiliser
VARCHAR(32)
pour les stocker? Qui sera assez grand pour tous les fuseaux horaires? Vérifiez également qu'il n'y a pas un integer ID pour les fuseaux horaires.Oui, vous devez les stocker en tant que chaîne de caractères, cochez ici stackoverflow.com/questions/8663590/...
et à propos de la longueur de oui, est-il 32, ici, ont une confirmation stackoverflow.com/questions/3477347/php-tz-setting-length
OriginalL'auteur Laurentiu