Quel est le moyen de stocker des “Temps seulement” valeurs avec php?
J'ai une table Mysql qui contient une colonne de de type TEMPS.
Lorsque je récupère les valeurs de cette colonne de TEMPS avec PHP, comment dois-je stocker dans la variable php pour l'utiliser plus tard dans mes classes php?
- Dois-je le garder comme une chaîne de caractères : "12:45:23"?
- Dois-je le convertir en une fraction de journée : 0.25 est 06:00:00 ?
- Dois-je le convertir en un nombre de secondes : 15152 est 04:12:32 ?
- autres?
Je voudrais utiliser le standard de php 5 façon de traiter avec le temps.
Merci!
Mise à JOUR
Mes données sont stockées dans une table mysql de type "TEMPS" et pas "DATETIME".
Je veux juste traiter avec temps (un certain nombre d'heures, de minutes et de secondes). la date n'est PAS pertinent dans mon cas, donc timestamp unix ou date/heure d'objets semble ne pas être approprié.
j'utilise surtout le timestamp unix de l'
utilisez ce qui fonctionne pour votre application
Mon dieu, à l'exception d'une réponse, toutes les autres réponses sont de répondre à une autre question
utilisez ce qui fonctionne pour votre application
Mon dieu, à l'exception d'une réponse, toutes les autres réponses sont de répondre à une autre question
OriginalL'auteur benjisail | 2011-01-05
Vous devez vous connecter pour publier un commentaire.
Meilleure et la plus commune est le nombre de secondes de toutes les fonctions php de travail dans ce format. Voir aussi: "timestamp"
OriginalL'auteur Simon
Utilisation ISO 8601, qui est
hh:mm:ss
pour une meilleure compréhension, et de haute readbilityYup, il n'y a rien de mal à cela, c'est très bien en fonction de votre application, certaines réponses suggérant timestamp évidemment exagéré, qui n'est pas idéal si votre demande ne traite qu'avec des heures. Il y a une raison pourquoi mysql a date, datetime, timestamp, le temps...divers type de données est de répondre à différentes fins
OriginalL'auteur ajreal
En général, vous devriez toujours conserver une valeur de date/heure dans la base de données natif des formats de date/heure. Cela vous permet d'utiliser la DB, natif de la date/heure de manipulation de fonctions dans les requêtes. Sinon, c'est juste un morceau de texte et vous êtes coincé avec l'aide de la chaîne de manipulation, ou d'avoir à sélectionner à chaque fois le terrain et de les manipuler dans votre application.
Ensuite, vous pouvez faire
SELECT unix_timestamp(datetimefield)
qui produit un simple entier signé valeur, qui peuvent être mises en PHP de la date/heure des fonctions directement.Il n'est pas un champ DATETIME, mais un champ de TEMPS. Donc, il n'y a pas de timestamp...
Il y a le
time_to_sec()
mysql fonction de cela.OriginalL'auteur Marc B
Le timestamp unix est probablement le meilleur pour le plus couramment utilisé, car il est également compatible avec toutes les PHP fonction date/heure et est plus petite que la taille d'une chaîne de caractères.
OriginalL'auteur Yanick Rochon
Il n'y a pas de "standard" - cela dépend vraiment de vos besoins.
Toutefois, si vous avez besoin de stocker des informations de date/heure dans un format canonique, je vous recommande d'utiliser RFC2822 (
date('r')
) pour s'assurer qu'il est toujours correct, même lorsque le fuseau horaire changements dus à l'heure d'été, etc. si c'est pertinent.Si ce n'est pas une préoccupation, alors simplement à l'aide d'un timestamp (un.k.un: unixtime - la sortie de
time()
) pourrait bien se révéler suffisant comme cela peut être trivialement converti entre le natif MySQL format datetime. (Utiliser la fonction strtotime de convertir en PHP ou tout simplement utiliser les UNIX_TIMESTAMP ou FROM_UNIXTIME les fonctions de MySQL dans la requête SQL.)OriginalL'auteur John Parker
Temps est un intervalle, alors vous pouvez le stocker en tant que secondes.
La seule chose, c'est que les secondes ne sont pas un objet, et vous ne pouvez pas lui donner des fonctions pratiques, ne s'agit-il de maintenir le nombre de minutes fournis.
Dire, par exemple: vous utilisez un temps comme
45:61:59
, après la conversion il de secondes vous ne serez pas en mesure de convertir ce format.PHP résout ces problèmes en utilisant des
DateInterval
41:61:45
est stockée en tant queLe problème est que
DateInterval
n'est pas aussi facile d'utilisation et utile qu'elle pourrait l'être, alors pourquoi ne pas créer votre propre classe?Ici, j'ai créé une pour vous (ou toute personne à la recherche)
(Je sais je suis en retard, mais cette question n'apparaît élevé dans les SERPs)
Maintenant, vous pouvez prendre que MySQL temps et de le faire facilement ce que vous voulez avec elle.
N'hésitez pas à modifier ce et la rendre plus ou mieux
OriginalL'auteur Timo Huovinen
Il y a beaucoup d'options que vous avez.
PHP a une belle fonction la fonction strtotime qui peut analyser un grand nombre de formats différents. Donc, si vous voulez garder le temps lisible, vous pouvait.
Le plus souvent, cependant, le format de l'heure est stockée comme le nombre de secondes depuis le L'époque Unix. Enregistre la peine d'avoir à constamment analyser de nouveau.
OriginalL'auteur Almost Famous
Regarder dans Date/Heure classes. Beaucoup d'entre eux a obtenu la plupart de leur utilité à 5.3, donc si vous êtes coincé en dessous, ils ne vous aideront pas beaucoup.
OriginalL'auteur Mchl