Quelle est la méthode recommandée pour stocker l'heure actuelle à l'aide de PHP et MySQL?
Mon approche initiale était:
$current = time(); //save this to column CURRENT_TIME with column type VARCHAR
//retrieve it like this
$retrieved = mysql_query(....) //assume query for getting the stored time value
$time = strtotime($retrieved);
Je suis venu à travers les approches suivantes:
- utilisation
gmstrftime
pour gérer gmt - utilisation
INT
au lieu deVARCHAR
pour la colonne - utiliser la fonction mysql
CURTIME
ouCURDATE
- utiliser le
UNIX_TIMESTAMP
mysql fonction
aucun n'a été à l'aide de la DATETIME
ou TIMESTAMP
mysql var type.
Avez-vous une meilleure approche pour ce que c'est?
Grrr... downvoted sans en laissant un commentaire.
OriginalL'auteur yretuta | 2010-02-24
Vous devez vous connecter pour publier un commentaire.
Il est recommandé d'utiliser mysql timestamp (AAAA-MM-JJ HH:MM:SS) type de champ pour stocker l'heure et de la date de variables dans mysql.
Il vous donne la possibilité d'utiliser les fonctions de mysql comparer des dates, de calculer les différences de temps et donc, directement dans votre requête mysql.
Aussi, vous pouvez toujours récupérer le timestamp à l'aide de la fonction strtotime() fonction.
je eddited la réponse. prendre un coup d'oeil. également vérifier le manuel est dev.mysql.com/doc/refman/5.0/en/datetime.html
ai eu de travail, et exactement ce que je cherchais. Merci!
OriginalL'auteur Alexar
Je viens d'utiliser le
TIMESTAMP
le type de valeur dans MySQL, et de laisser MySQL utilisation de son propreCURRENT_TIMESTAMP
.OriginalL'auteur casraf
Bien, que vous pouvez activer un champ TIMESTAMP MySQL en PHP Time() valeur à l'aide de
strtotime()
Ensuite vous avez juste à faire une fonction qui tourne correctement PHP Time() la valeur dans une base de données MySQL valeur d'HORODATAGE.
vous pouvez utiliser MySQL
FROM_UNIXTIME()
fonction pour convertir pour le stockage dans la base. Vous pouvez également utiliser effectivementUNIXTIMESTAMP()
convertir à venir, ainsi, si vous voulez le faire DB-côté.Vous pourriez avoir Googlé.... :
$mysqldate = date( 'Y-m-d H:i:s', $phpdate );
Je l'ai déjà fait, mais la solution que je cherchais à avoir un horodatage comme le type de données dans mysql et ensuite être capable de le formater avec la fonction date (): (
OriginalL'auteur Tyler Carter
Le format utilisé par MySQL n'a pas besoin de correspondre au format utilisé par PHP. Choisir le meilleur de chaque côté. Les bases de données types de données de date pour une raison; dans MySQL, vous pouvez choisir à partir de ces:
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-types.html
En PHP, en gros, vous avez trois options:
Bon vieux horodatages sont faciles à manipuler et vous pouvez les utiliser dans des requêtes MySQL —voir FROM_UNIXTIME() et UNIX_TIMESTAMP()— mais ils ont des questions liées à l'autonomie (vous ne pouvez pas compter sur eux pour la pré-1970 dates, de sorte qu'ils ne sont pas adaptés pour les anniversaires).
DateTime objets sont puissants et builtin, n'ont pas de questions liées à l'autonomie et charge les fuseaux horaires. Cependant, ils ne sont parfois pas très confortable à utiliser, car elles semblent manque quelques méthodes importantes.
Vous pouvez utiliser un objet date (tiers ou de votre propre DateTime).
OriginalL'auteur Álvaro González
De les stocker en tant que int est plus logique.
Vous enregistrez le format de la ligne de date, à l'aide duquel vous pouvez ensuite extraire d'autres format de données et plus ..
J'ai aussi l'enregistrer en tant que int.
Edit: Pour(Uni-TimeZone) application int est le moyen le plus rapide et le PHP a la grande époque des outils de conversion.
l'horodatage et la date de types de données ont été inventés pour plusieurs raisons.. et en plus il donne d'autres personnes une idée de ce que les données sur.
Merci @zerkms je vais le modifier maintenant
OriginalL'auteur AlSayed Gamal