|
|
|
|
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
Répondre à grofwa
|
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.
|
Prenons le problème à l'entrée.
<?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. |
Allez Hop!! 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. |