date dans une base

Eléphanteau du PHP | 17 Messages

06 nov. 2012, 16:36

bonjour,

j'ai un probleme avec une date dans ma base,

je recupére une date naissance (3 listes déroulante JJ,MM et AAAA)que je concatene pour avoir une seule variable
$j=$_POST["jour"];
$m=$_POST["mois"];
$a=$_POST["annee"];
$naiss=$j.'/'.$m.'/'.$a;
mon probléme est que quand je met $naiss dans la base ça me met un chiffre du genre : 0.00254065

je suppose que ça doit faire un calcul la date étant affichée comme ça :01/02/1960

je ne vois pas comment faire pour l'afficher dans la base de cette façon:01/02/1960

merci de votre aide

Eléphanteau du PHP | 25 Messages

06 nov. 2012, 19:18

Hello,

Tu as spécifié quel type sur ton champ ou tu veux stocker ta date de naissance dans ta table ?

Tu devrais utiliser le type DATE pour y stocker la date de naissance sous ce format : AAAA-MM-JJ

Si tu es sous mysql tu peux utiliser n'importe quel caractère de ponctuation comme délimiteur entre l'Année le Mois et le Jours genre / - ou :

Eléphanteau du PHP | 17 Messages

07 nov. 2012, 12:14

salut,
j'avais mis le type varchar, je vais essayer avec le type date.

je pensais que la fonction date() ne servais qu'a récupérer la date actuelle.

je récupére les dates JJ MM et AAAA comme ça:
$j=$_POST["jour"];
$m=$_POST["mois"];
$a=$_POST["annee"];
$naiss=$a.'-'.$m.'-'.$j;
avec la variable $naiss je concaténe pour l'insérer dans la base de données,

dans la base ça s'affiche comme ça: 000-00-00 (champ de type DATE)

en mettant un écho sur la page qui reçoit les données du formulaire j'ai bien la date qui s'affiche comme ça: 1985-12-01

Eléphanteau du PHP | 25 Messages

07 nov. 2012, 18:02

Ne confond pas la fonction date() et le type date d'un champ d'une table SQL.

Apparement ta date est invalide.

Essaye voir en enlevant les 0 exemple :

1985-12-01 devient 1985-12-1

Tu utilises mysql ?

Essaye et dis moi

ViPHP
ViPHP | 2291 Messages

25 nov. 2012, 21:22

Salut,

Avec DATE_FORMAT ET STR_TO_DATE c'est plus simple a faire.
un Exemple :


$ta_date = '25-11-2020';

$SQL = 'INSERT INTO ta_table ('ton_champ_date') VALUES ( DATE_FORMAT( STR_TO_DATE(  '$ta_date',  '%d-%m-%Y' ) ,  '%Y-%m-%d' ))
Facile a comprendre :)

A+
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.