Date en php
Fermé
Bonjour,
j'ai un formulaire dans lequel certaines personnes entre leur date de naissance !
je souhaiterai savoir comment faire pour pour connaitre l'age de la personne a partir de sa date de naissance pour le moment dans ma base de donnée (MYSQL) j'ai pas mis de type particulier mais je suppoz que se sera de type date...!!??
en fait je dois a partir de la date de naissance savoir si la personne a moins de 18ans ou pas...
si elle a moins de 18ans lui afficher qq'chose du type
echo "vs avez moins de 18ans";
sinon
echo "vs avez plus de 18ans";
Lynne
j'ai un formulaire dans lequel certaines personnes entre leur date de naissance !
je souhaiterai savoir comment faire pour pour connaitre l'age de la personne a partir de sa date de naissance pour le moment dans ma base de donnée (MYSQL) j'ai pas mis de type particulier mais je suppoz que se sera de type date...!!??
en fait je dois a partir de la date de naissance savoir si la personne a moins de 18ans ou pas...
si elle a moins de 18ans lui afficher qq'chose du type
echo "vs avez moins de 18ans";
sinon
echo "vs avez plus de 18ans";
Lynne
A voir également:
- Date en php
- Easy php - Télécharger - Divers Web & Internet
- Trier par date excel - Guide
- Airpods 3 date de sortie - Guide
- Trouver une date de naissance gratuit ✓ - Forum Google Chrome
8 réponses
Allez Hop!!
Trouvé je ne sais où et jamais testé.
Merci à son auteur.
function dateValide(dateJ, dateM, dateA, texte){ if((dateJ.value == 'nc') || (dateM.value == 'nc') || (dateA.value == 'nc')){ // On est dans le cas ou on ne veut pas mettre de date var confirmation = confirm("Votre date "+texte+" n'etant pas remplie totalement,\nelle ne sera donc pas enregistrée.\nContinuer?"); if(confirmation){ return true; }else{ return false; } }else{ // Ici, tous les champs de la date sont remplis, on vérifie sa validité. if((dateA.value<1900) || (dateA.value>2100) || isNaN(dateA.value)){ alert("L'année "+texte+" indiquée n'est pas valide."); return false; }else{ // Vérification de l'existence de la date (30 février...) // De toute facon, Janvier (01), Mars (03), Mai (05), Juillet (07), Août (08), Octobre (10) et Décembre(12) // sont valides (31 jours cahque année). if((dateM.value == 1) || (dateM.value == 3) || (dateM.value == 5) || (dateM.value == 7) || (dateM.value == 8) || (dateM.value == 10) || (dateM.value == 12)){ return true; } // On vérifie Avril (04), Juin (06), Septembre (09) et Novembre (11) qui ont toujours 30 jours if((dateM.value == 4) || (dateM.value == 6) || (dateM.value == 9) || (dateM.value == 11)){ if(dateJ.value > 30){ alert("La date "+texte+" indiquée n'est pas valide : ce mois ne compte pas 31 jours."); return false; }else{ return true; } } // Année bissextile (donc a un 29 février) si multiple de 4 et pas de 100, ou de 400 if((((dateA.value % 4) == 0) && !((dateA.value % 100) == 0)) || ((dateA.value % 400) == 0)){ // L'année indiquée est bissextile if((dateM.value == 2) && (dateJ.value > 29)){ alert("La date "+texte+" indiquée n'est pas valide : Février "+dateA.value+" compte 29 jours."); return false; }else{ return true; } }else{ // L'année indiquée n'est pas bissextile if((dateM.value == 2) && (dateJ.value > 28)){ alert("La date "+texte+" indiquée n'est pas valide : Février "+dateA.value+" compte 28 jours."); return false; }else{ return true; } } } } return false; } Y'a des options inutiles, mais à toi d'adapter. Et n'oublie pas de mettre <option value=1>Janvier</option> et ainsi de suite. A+
Trouvé je ne sais où et jamais testé.
Merci à son auteur.
grofwa
Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
479
15 juil. 2004 à 22:35
15 juil. 2004 à 22:35
Salut,
Tu peux utiliser la fonction DATEDIFF(expr,expr2) qui te donne le nombre de jours entre deux dates
Michael.
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
Tu peux utiliser la fonction DATEDIFF(expr,expr2) qui te donne le nombre de jours entre deux dates
Michael.
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
DATEDIFF(expr,expr2)
expr ==> c'est la date de naissance
et expr2 ==> est la date actuel je suppose?
mais j'aimerais savoir si dans ma base de donné tt les champs doivent etre définie en, type DATE et je dois imposé un façon de tapé la date au utilisateur genre
xx/xx/xxxx
xxxx/xx/xx etc.....?
Merci de m'avoir répondu
Lynne
expr ==> c'est la date de naissance
et expr2 ==> est la date actuel je suppose?
mais j'aimerais savoir si dans ma base de donné tt les champs doivent etre définie en, type DATE et je dois imposé un façon de tapé la date au utilisateur genre
xx/xx/xxxx
xxxx/xx/xx etc.....?
Merci de m'avoir répondu
Lynne
grofwa
Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
479
16 juil. 2004 à 13:53
16 juil. 2004 à 13:53
La manière dont tu enregistres les données dans ta base dépendant principalement du langage de programmation que tu utilises. Mais c'est clair qu'il faut enregistrer en type DATE.
DATEDIFF te retourne le nombre de jours entre les deux dates, peu importe l'ordre dans lequel tu mets les dates, tu n'a qu'à prendre la valeur absolue.
m.
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
DATEDIFF te retourne le nombre de jours entre les deux dates, peu importe l'ordre dans lequel tu mets les dates, tu n'a qu'à prendre la valeur absolue.
m.
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
grofwa
Messages postés
440
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
21 juillet 2006
479
16 juil. 2004 à 14:07
16 juil. 2004 à 14:07
Pour info, par défaut, les dates en PHP sont formattées YYYY-MM-DD.
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
--> grofwa
YYYY-MM-DD est le format de date de MySql, mais en PHP je dirai que la date est exprimée en millisecondes.
--> grofwa
YYYY-MM-DD est le format de date de MySql, mais en PHP je dirai que la date est exprimée en millisecondes.
Prenons le problème à l'entrée.
Dans ton formulaire, les gens peuvent saisir n'importe quoi comme date de naissance (par exemple 37 février 2012).
Tu dois donc vérifier la validité de la date saisie.
Une fois cela fait, ce devrait être un jeu d'enfant de la mettre sous la forme yyyy-mm-dd avant de l'enregistrer dans ta base.
Désolé de te compliquer la vie.
Un exemple de code
Tu peux bien sûr valider la date en javascript.
Dans ton formulaire, les gens peuvent saisir n'importe quoi comme date de naissance (par exemple 37 février 2012).
Tu dois donc vérifier la validité de la date saisie.
Une fois cela fait, ce devrait être un jeu d'enfant de la mettre sous la forme yyyy-mm-dd avant de l'enregistrer dans ta base.
Désolé de te compliquer la vie.
Un exemple de code
<?php $mois=6; $date=19; $annee=2004; if( checkdate($mois,$date,$annee)) { echo "la date est bonne<br>\n"; $date_mysql="$annee-$mois-$date"; // je crois même que MySql rajoute des zéros si nécessaire sinon tu le fais toi-même echo "$date_mysql<br>\n"; } else { echo "la date est fausse Recommencez la saisie<br>\n"; } ?>
Tu peux bien sûr valider la date en javascript.
En javascript tu as un format de date qui n'a pas besoin d'être le même qu'en MySql.
Et pour calculer l'âge utilise les fonctions de MySql.
Et pour calculer l'âge utilise les fonctions de MySql.
16 juil. 2004 à 16:42
mais je veux qu'il l'entre sous la forme jj/mm/aaaa ==> ( 12/06/2004)
mais je vais essayer de me servir de ce que tu m'a donné ki a l'air très bien j'esperes pouvoir l'adapter pour en faire e que j'veux :-)
merci encore
Lynne