Transformer un format de date au format mysql
Résolu/Fermé
MoYoX
Messages postés
127
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
21 mars 2014
-
4 juin 2009 à 09:09
MoYoX Messages postés 127 Date d'inscription jeudi 4 juin 2009 Statut Membre Dernière intervention 21 mars 2014 - 4 juin 2009 à 10:53
MoYoX Messages postés 127 Date d'inscription jeudi 4 juin 2009 Statut Membre Dernière intervention 21 mars 2014 - 4 juin 2009 à 10:53
A voir également:
- Transformer un format de date au format mysql
- Format epub - Guide
- Telecharger format factory - Télécharger - Conversion & Codecs
- Format apfs - Guide
- Format dat - Guide
- Hp format tool - Télécharger - Stockage
3 réponses
Bonjour
Pour convertir le "JJ/MM/AAAA" en "AAAA-JJ-MM", il suffit d'utiliser la fonction PHP substr pour 'découper' des tranches dans ta date initiale, puis de les ré-assembler dans l'ordre qui te convient.
Pour convertir le "JJ/MM/AAAA" en "AAAA-JJ-MM", il suffit d'utiliser la fonction PHP substr pour 'découper' des tranches dans ta date initiale, puis de les ré-assembler dans l'ordre qui te convient.
Brachior
Messages postés
613
Date d'inscription
dimanche 21 octobre 2007
Statut
Membre
Dernière intervention
22 juin 2009
46
4 juin 2009 à 09:49
4 juin 2009 à 09:49
le mieux serait de passer ta date en timestamp (entier) et de l'envoyer a phpmyadmin
ca te ferai gagner pas mal d'octet (4 conttre 10)
de plus mysql et php ont pas mal de fonctions de manipulation de timestamp et de date
(tu lui rentre une date il te donne le timestamp et vice versa)
extrait de http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html
FROM_UNIXTIME(unix_timestamp)
Retourne une représentation de l'argument unix_timestamp sous la forme 'YYYY-MM-DD HH:MM:SS' ou YYYYMMDDHHMMSS, suivant si la fonction est utilisé dans un contexte numérique ou de chaîne.
[...]
format :
extrait de https://www.php.net/manual/fr/function.mktime.php
Description
int mktime ([ int $hour= date("H") [, int $minute= date("i") [, int $second= date("s") [, int $month= date("n") [, int $day= date("j") [, int $year= date("Y") [, int $is_dst= -1 ]]]]]]] )
mktime() retourne un timestamp UNIX correspondant aux arguments fournis. Ce timestamp est un entier long, contenant le nombre de secondes entre le début de l'époque UNIX (1er Janvier 1970 00:00:00 GMT) et le temps spécifié.
Les arguments peuvent être omis, de droite à gauche, et tous les arguments manquants sont utilisés avec la valeur courante de l'heure et du jour.
engros, tu coupe ta chaine, tu la donnes a mktime, il te donne un entier, tu le stock dans ta bdd,
tu peux alors manipuler tes dates facilement, et les afficher avec FROM_UNIXTIME
ca te ferai gagner pas mal d'octet (4 conttre 10)
de plus mysql et php ont pas mal de fonctions de manipulation de timestamp et de date
(tu lui rentre une date il te donne le timestamp et vice versa)
extrait de http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html
FROM_UNIXTIME(unix_timestamp)
Retourne une représentation de l'argument unix_timestamp sous la forme 'YYYY-MM-DD HH:MM:SS' ou YYYYMMDDHHMMSS, suivant si la fonction est utilisé dans un contexte numérique ou de chaîne.
mysql> SELECT FROM_UNIXTIME(875996580); -> '1997-10-04 22:23:00' mysql> SELECT FROM_UNIXTIME(875996580) + 0; -> 19971004222300Si format est donné, le résultat est formaté en fonction de la chaîne format. format peut contenir les mêmes options de format que celles utilisées par DATE_FORMAT() :
mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), -> '%Y %D %M %h:%i:%s %x'); -> '2003 6th August 06:22:58 2003'
[...]
format :
Option Description %% Un signe pourcentage littéral ‘%’. %a Nom du jour de la semaine, en abrégé et en anglais (Sun..Sat) %b Nom du mois, en abrégé et en anglais (Jan..Dec) %c Mois, au format numérique (1..12) %d Jour du mois, au format numérique (00..31) %D Jour du mois, avec un suffixe anglais (1st, 2nd, 3rd, etc.) %e Jour du mois, au format numérique (0..31) %f Microsecondes (000000..999999) %H Heure (00..23) %h Heure (01..12) %I Heure (01..12) %i Minutes, au format numérique (00..59) %j Jour de l'année (001..366) %k Heure (0..23) %l Heure (1..12) %m Mois, au format numérique (01..12) %M Nom du mois (January..December) %p AM ou PM %r Heures, au format 12 heures (hh:mm:ss [AP]M) %s Secondes (00..59) %S Secondes (00..59) %T Heures, au format 24 heures (hh:mm:ss) %U Numéro de la semaine (00..53), où Dimanche est le premier jour de la semaine %u Numéro de la semaine (00..53), où Lundi est le premier jour de la semaine %V Numéro de la semaine (01..53), où Dimanche est le premier jour de la semaine, utilisé avec '%X' %v Numéro de la semaine (01..53), où Lundi est le premier jour de la semaine, utilisé avec '%x' %W Nom du jour de la semaine (Sunday..Saturday) %w Numéro du jour de la semaine (0=Sunday..6=Saturday) %X Année, pour les semaines qui commencent le Dimanche, au format numérique, sur 4 chiffres, utilisé avec '%V' %x Année, pour les semaines qui commencent le Lundi, au format numérique, sur 4 chiffres, utilisé avec '%v' %y Année, au format numérique, sur 2 chiffres %Y Année, au format numérique, sur 4 chiffres
extrait de https://www.php.net/manual/fr/function.mktime.php
Description
int mktime ([ int $hour= date("H") [, int $minute= date("i") [, int $second= date("s") [, int $month= date("n") [, int $day= date("j") [, int $year= date("Y") [, int $is_dst= -1 ]]]]]]] )
mktime() retourne un timestamp UNIX correspondant aux arguments fournis. Ce timestamp est un entier long, contenant le nombre de secondes entre le début de l'époque UNIX (1er Janvier 1970 00:00:00 GMT) et le temps spécifié.
Les arguments peuvent être omis, de droite à gauche, et tous les arguments manquants sont utilisés avec la valeur courante de l'heure et du jour.
engros, tu coupe ta chaine, tu la donnes a mktime, il te donne un entier, tu le stock dans ta bdd,
tu peux alors manipuler tes dates facilement, et les afficher avec FROM_UNIXTIME
MoYoX
Messages postés
127
Date d'inscription
jeudi 4 juin 2009
Statut
Membre
Dernière intervention
21 mars 2014
3
4 juin 2009 à 10:53
4 juin 2009 à 10:53
Merci Brachior et le père pour vos solutions mais j'ai une préférence pour celle de "le père" car beaucoup plus simple à comprendre ! ^^
Voici donc le code que j'obtiens grâce à ta méthode "le père":
J'obtiens donc bien une date sous la forme AAAA-MM-JJ à la place du JJ/MM/AAAA de départ.
(mon $tableau[ats] est le résultat d'un mysql_fetch_array qui met le champ "ats" de ma BDD sous forme de tableau)
Je te remercie donc beaucoup pour cette aide !
Voici donc le code que j'obtiens grâce à ta méthode "le père":
$jour = substr($tableau[ats], 0, 2); $mois = substr($tableau[ats], 3, 2); $annee = substr($tableau[ats], 6, 4); $date = "$annee"."-"."$mois"."-"."$jour"; printf("Date:\t%s<BR>",$date);
J'obtiens donc bien une date sous la forme AAAA-MM-JJ à la place du JJ/MM/AAAA de départ.
(mon $tableau[ats] est le résultat d'un mysql_fetch_array qui met le champ "ats" de ma BDD sous forme de tableau)
Je te remercie donc beaucoup pour cette aide !