|
|
|
|
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]
|
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]
|
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]
|
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.
|
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. |
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.
|
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. |
comment calculer l'age à partir de la date de naissance et la date actuel en PHP/Mysql?
C'est urgent!!!!! |
| 03/11 14h35 | [PHP] Date de dernière modification | PHP |
| 04/11 15h37 | [PHP] Dernier jour du mois / Nombre de jours dans le mois | PHP |
| 21/03 16h48 | Vérifier le format d'une date en PHP | PHP |
| 06/11 19h24 | [PHP] Upload de fichiers | PHP |
| 21/03 17h09 | Ecrire une date au format français | PHP |
| 24/06 14h52 | Difference enter deux dates [php] | 2 |
| 23/06 11h28 | Comparer deux dates php need help | 7 |
| 27/05 09h18 | Filtre par date php | 2 |
| 13/07 13h54 | Date PHP | 1 |
| 07/07 13h59 | Modification date php mysql | 0 |
![]() | PHP 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 |
![]() | Index.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 |
![]() | Super - 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 |
![]() | MTV 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 |
![]() | Trekstor Storage DataS.maxi z.ul | Catégorie: Disque dur | |
![]() | Fujifilm GX-680 IIIS Date | Catégorie: Appareil Photo Réflex | 2,042.99 € PriceMinister |
![]() | Trekstor DataStation pocket t.ub | Catégorie: Disque dur | 119.99 € Matrixx-media FR |
![]() | Antec 3U25EPS550XR-2EC Datorlada Rack | Catégorie: Boîtier PC | 255.37 € Amazon.fr |