rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Date en php

Posté par Lynne, le jeudi 15 juillet 2004 à 22:29:18
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 à Lynne  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
grofwa, le jeudi 15 juillet 2004 à 22:35:43
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]
Répondre à grofwa

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Lynne, le vendredi 16 juillet 2004 à 13:28:11
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
Répondre à Lynne

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
grofwa, le vendredi 16 juillet 2004 à 13:53:41
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]
Répondre à grofwa

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Lynne, le vendredi 16 juillet 2004 à 13:58:39
Donc en clair moi ki utilise un formalaire PHP avec une base de donnée MySQL je devrais enregistrer mes dates sous kel format??
après qq recherche j'ai vue que MySQL ne prennais pas en charge le format FR ==> jj/mm/AAAA
ça a un rapport?
Lynne
Répondre à Lynne

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
grofwa, le vendredi 16 juillet 2004 à 14:07:39
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]
Répondre à grofwa

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Lynne, le vendredi 16 juillet 2004 à 15:11:19
mouè...ok!!!
Merci
Répondre à Lynne

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ric, le vendredi 16 juillet 2004 à 15:28:39
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.
Répondre à ric

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Lynne, le vendredi 16 juillet 2004 à 15:36:27
oula,
euh...c gentil de me compliké le tout toi lol
se serais bien si vous avez un exple de script qui envoie une date dans un base de donnée ou ki traite une date dans un formulaire PHP si qq'1 en avait se serais cool
en tt cas je vous remercie
Lynne
Répondre à Lynne

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ric, le vendredi 16 juillet 2004 à 16:21:07
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
<?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.
Répondre à ric

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ric, le vendredi 16 juillet 2004 à 16:31:21
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.
Répondre à ric

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Lynne, le vendredi 16 juillet 2004 à 16:42:17
Merci beaucoup ric...
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
Répondre à Lynne

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ric, le vendredi 16 juillet 2004 à 22:49:48
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.
Répondre à ric

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 RaSim, le vendredi 23 mai 2008 à 10:05:47
comment calculer l'age à partir de la date de naissance et la date actuel en PHP/Mysql?
C'est urgent!!!!!
Répondre à RaSim
Discussions pertinentes trouvées dans le forum
24/06 14h52Difference enter deux dates [php]2
23/06 11h28Comparer deux dates php need help7
27/05 09h18Filtre par date php2
13/07 13h54Date PHP1
07/07 13h59Modification date php mysql0
Plus de discussions sur « date en php »
Logiciels pertinents trouvés dans les téléchargements
Télécharger PHP Edit 0.6PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de...Catégorie: PHP
Licence: Freeware/gratuit
Télécharger Index.dat Analyzer v 2.0Index.dat Analyzer - Index.dat Analyzer permet de voir, éditer et effacer le contenu de ces fichiers - théoriquement cachés - qui participent aux...Catégorie: Anonymat/Confidentialité
Licence: Freeware/gratuit
Télécharger Super 2007.build.22Super - SUPER © est un convertisseur audio/vidéo universel, supportant une grande variété de formats d'entrée, dont : formats...Catégorie: Vidéo
Licence: Freeware/gratuit
Télécharger MTV Video Converter 1.11.4MTV Video Converter - Le programme MTV Video Converter est un convertisseur vidéo vers le format MTV acceptant les formats d'entrée suivants : ...Catégorie: Conversion
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « date en php »