Petite interrogation

CyberMen30 Messages postés 152 Date d'inscription dimanche 31 août 2003 Statut Membre Dernière intervention 8 novembre 2007 - 10 mars 2006 à 21:36
CyberMen30 Messages postés 152 Date d'inscription dimanche 31 août 2003 Statut Membre Dernière intervention 8 novembre 2007 - 12 mars 2006 à 18:13
Je me demandais s'il était possible avec une quelquoncque (je suis vraiment pas certain de l'orthographe hihihi) de prendre un élément texte et de le calculer comme un nombre...exemple

j'ai un élément texte avec la valeur 17-03-1973
est-il possible de faire ressortir une date de ce champs texte là?

Meric à l'avance

12 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
10 mars 2006 à 23:24
hello,

quelconque.

C'est quoi un élément texte...?
si tu soumets un formulaire avec un champ texte du genre :

tu le récupères dans $_POST['date'] ou $_GET['date'] selon la méthode utilisée par ton formulaire.
Mais heu...17-03-1973 EST une date...où est ton problème au juste, que veux-tu en faire exactement?
0
CyberMen30 Messages postés 152 Date d'inscription dimanche 31 août 2003 Statut Membre Dernière intervention 8 novembre 2007
10 mars 2006 à 23:59
Merci malalam pour ta réponse et aussi pour le mini cours d'orthographe hiihih

Mon probleme est que j'entre une date d'inscription dans ma base de données qui est du type texte (je sais que j'aurais dû tout de suite la mettre de type date mais bon) puisqu' au moment de faire cette partie, je n'avais pas besoins de "jouer" avec cette date, ce n'était que pour simple information.

Mais dû a certain changement, j'ai besoins de cette date pour supprimer les enregistrements qui date de plus de 1 an...

Alors voila mon problème...
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
11 mars 2006 à 00:09
je remets le code que j'ai mis quelques posts avant le tien aujourd'hui :
$date = '17-03-1973';
list ($day, $month, $year) = explode ('-', $date);
if (false === checkdate ($month, $day, $year)) {
//date erronée
} else {
//date correcte
}
0
CyberMen30 Messages postés 152 Date d'inscription dimanche 31 août 2003 Statut Membre Dernière intervention 8 novembre 2007
11 mars 2006 à 00:18
Merci beaucoup, c'est très gentil :-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
11 mars 2006 à 00:31
De rien, mais en relisant ta réponse...
tu as une table avec des champs texte, dans lesquels se trouvent une date à ce format, c'est ça ? Et tu veux supprimer toutes les lignes dont la date est ancienne de plus d'un an?
DELETE FROM table WHERE RIGHT(date, 4) != '2006'
par exemple. Bon là, ça supprime toutes les dates antérieurs à 2006 hein, mais tu peux mixer :
DELETE FROM table WHERE (RIGHT(date, 4) != '2006' AND RIGHT(date, 4) != '2005' )) OR (RIGHT(date, 4) = '2005' AND SUBSTRING(date, FROM 4, 2 ) IN ('01', '02'))

Ca devrait te supprimer toutes les lignes dont la date est inférieure à mars 2005 (à tester hein...j'ai fait ça comme ça).
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
11 mars 2006 à 08:55
Salut,

change de manière de stockage, avec des INT c'est moins gourmand et beaucoup plus efficace dans les requêtes.

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
CyberMen30 Messages postés 152 Date d'inscription dimanche 31 août 2003 Statut Membre Dernière intervention 8 novembre 2007
11 mars 2006 à 15:05
MErci vous deux.

Changer mon champs pour un int, je vais devoir changer mon code dans ce que j'ai de déja fait!!?!

Je vais faire les test ce lundi.

Merci encore!!!
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
12 mars 2006 à 15:25
Bah un champ DATE c'est pas pour rien que ca existe aussi :)
Et puis vaut mieux récupérer une date d'un champ de type DATE plutot que de devoir faire un traitement PHP ou alors via un DATE_FORMAT('champ_date', 'Y-m-d');

Maintenant faut voir le plus rapide aussi... niveau stockage c'est pas pour 4bits de plus que ca va changer quelque chose lol :p
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
12 mars 2006 à 15:49
Non mais c'est beaucoup plus simple à traiter quand t'as des limites de temps à connaître, du genre "sélectionner telle date inférieure de X secondes à la date courante" et c'est beaucoup plus rapide pour mysql.

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
12 mars 2006 à 15:59
Oui, mais un traitement PHP est il pas aussi lourd derrière ?
Le fait de reconvertir en timestamp puis comparer via mysql ? plutot que de le faire directement ?
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
12 mars 2006 à 16:10
non tu convertis rien en timestamp :

SELECT machin FROM table WHERE time<'.time()-valeur.' par exemple, avec un index sur le champ INT ça trace :-)

après quand tu veux afficher une petite fonction date() au lieu du dateformat de mysql et c'est propre et rapide :-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
CyberMen30 Messages postés 152 Date d'inscription dimanche 31 août 2003 Statut Membre Dernière intervention 8 novembre 2007
12 mars 2006 à 18:13
Oufff, vous venez de me perdre hihiih

Je vais tenter l'expérience demain en changeant mon champs texte pour un int.

Je verrais la suite, c'est en se jetant à l'eau que je vais le voir

Merci pour les précieux conseils
0
Rejoignez-nous