La fonction date()

Résolu/Fermé
vencegak Messages postés 56 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 27 février 2009 - 10 sept. 2008 à 13:42
vencegak Messages postés 56 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 27 février 2009 - 16 sept. 2008 à 15:58
Bonjour,
je viens de créer un site web avec php , disposant d'une db mysql , seulement j'ai un champs qui doit prendre la date du jour.
j'ai utilisé la fonction date pour recuperer la variable , sauf que je me retrouve avec des 0000-00-00 dans ma base de donnée.
Voici l'extrait de mon code

$Datecreation = date("d-m-Y");


le type de mon champs Datecreation est date.
Merci bien et à bientot

14 réponses

bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
10 sept. 2008 à 13:49
salut!
c'est normal,mysql enregistre les dates au format anglais!
0
vencegak Messages postés 56 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 27 février 2009
10 sept. 2008 à 20:34
salut,
si je comprends bien , c'est normal que j'ai des ma date à zero dans ma base de donnée ? et comment le rendre visible
j'ai utilisé la fonction time() dans une procedure et cela ne m'a pas posé de soucis, comment tu explique clela?
Soit un peu plus explicite dans ta reponse car ta phrase ne fait pas avancer lle sujet.
Merci pour ton aide et à bientot.
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
10 sept. 2008 à 20:51
salut
dans ton formulaire de saisie,toi tu saisie la date en français,or mysql n'accepte pas ça,donc il va mettre des 0 partout dans la date qui se trouve dans ta table!
pour afficher la date,soit tu entre ta date au format anglais (comme dans mysql)
0
vencegak Messages postés 56 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 27 février 2009
10 sept. 2008 à 21:51
il y avait vraiment incomprehension entre nous
Je m'explique
le champs date n'est pas un champ de saisie dans mon exemple , il correspond à la date à laquelle le formulaire a été validé par la personne qui s'inscrit, en d'autre termes , l'idée est de capturée la date au moment de la validation du formulaire.
Le champs date est interne à ma base de donnée , il n'apparait pas dans mon formulaire.
il me permettra d'avoir une idée de la date de création du profil utilisateur.
Je pense avoir mieux rendu les choses claire.
Merci pour ton apport
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vencegak Messages postés 56 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 27 février 2009
15 sept. 2008 à 11:19
Salut !
je suis toujours en galere avec la fonction date()
je me retrouve toujours avec le format 0000:00.00
Merci de m'aider
à bientot
0
gaerebut Messages postés 1017 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 22 novembre 2013 171
15 sept. 2008 à 13:07
Salut,

je pense que l'idéal est d'enregistrer la date en timestamp (nombre de seconde écoulé depuis le 1 janvier 1970), c'est un norme pour les dates.

En fait tu aura quelque chose comme ça dans ta BDD : 1221476477 (qui est le timestamps actuel a la seconde près ^^)

Pour avoir le timestamps c'est
time()
en php ...simple non ? ^^
Puis c'est qu'a l'affichage qu'on affiche la date comme on le souhaite !

J'ai cru comprendre que tu veux JOUR - MOIS - ANNEE

Quand on affiche c'est comme cela :

date('d/m/Y', $timestamp)


Voila, en espérant t'avoir aidé !

A+

Gaerebut
0
vencegak Messages postés 56 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 27 février 2009
15 sept. 2008 à 14:19
Je vous remercie pour votre aide,
seulement après modif de cette proposition,, je me retrouve toujours avec la meme souci

je vous donne une idée de mon code source sachant que la datecreation n'est pas un champ de saisie , il permet juste de recuperer la date de validation du formulaire pour la stocker dans la base de donnée mysql.
Je soushaiterai que l'affichage soit le suivant dans ma base : 15-09-2008.
je suis coincé depuis deux jours , j'ai fait le tour des forums mais j y suis en core là , à vous de m'aider , merci bien.
bien cordialement


// la declaration des variables



.
$timestamps = time();
$Datecreation = date('d/m/Y', $timestamp); .

/./ insertion dans la base des données
..

$requete="INSERT INTO infoclients(Datecreation)
VALUES ('".$Datecreation."');";



$result=mysql_query($requete) or die("Erreur SQL : <b>".mysql_error()."</b><br/>$requete");
if ($result)

{echo "ok !";}


mysql_close($connexion);


?>

</body>
</html>






















1221480324 Hugor raoul 3 28 bresil 0145568945 12 2 1695 0000-00-00
0
vencegak Messages postés 56 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 27 février 2009
15 sept. 2008 à 14:57
Bonjour , j'essaie de vous comprendre,
je souihaiterai que ma date soit direcetement lisible dans ma base de donnée en format d-m-Y car , ainsi j'aurai juste à convertir ma base de donnée en fichier excel pour les besoins de stats.
je ne me sers pas de la date pour l'affiche web.
sinon bien evidement avec time() je contournerai le souci si tel était le cas.
Je suis à votre disposition , je suis toujours bloqué,
je suis à vous me cher(è)s programmeurs.
bien merci
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
15 sept. 2008 à 17:19
salut!
juste pour te dire qu'il est impossible d'enregistrer dans MySql la date au format (JJ-MM-AAAA) car MySql accepte que le format anglais(0000-00-00),raison pour laquelle quand tu insere dans la base avec ton format,MySql ne reconnait pas ce format et du coup il te met des 0 partout.
Essai de changer le format de ta date et tu verras que ça va marcher!!(met la date au format anglais)
0
vencegak Messages postés 56 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 27 février 2009
15 sept. 2008 à 17:43
voici j'ai mis la date en format anglais mais rien de nouveau. , seulement il ne change rien

$Datecreation = date("y-m-d",$Datecreation);
Merci bien .je continue dans les recherches
0
bissdebrazza Messages postés 2065 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 712
15 sept. 2008 à 19:56
salut!
essai ça!

$Datecreation = date("YYYY-DD-MM",$Datecreation);

Le format accepté par MySql.
0
Dr Zoidberg Messages postés 529 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
15 sept. 2008 à 20:01
Salut,

Tu peux aussi utiliser directement la date actuelle générée par mysql:
$requete='INSERT INTO infoclients(Datecreation) VALUES (now());';
0
billwate Messages postés 48 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 19 avril 2010 28
16 sept. 2008 à 03:03
Comme on te l'a dit dans un précédent post, mysql enregistre les dates au format anglais c'est à dire YYYY-MM-DD.
Il faut que tu t'alignes sur ça et la fonction est simple pour la date du jour :

$dateCreation = date("Y-m-d");

dans excel, tu pourras convertir au format français avec une macro.

0
vencegak Messages postés 56 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 27 février 2009
16 sept. 2008 à 15:58
Salut les gars!
une fois de plus merci pour votre apport.
j'ai substitué Date("Y-m-d", $timestamp) dans mon cas "Datecreation" avec coe type de champs datetime

par


Date("Y-m-d") avec coe type de champs date et tout marche nickel

J'ai la date de la validation de mon formulaire bien enregistrée dans ma base en format english.
L'application de convertion de ma base mysql en excel me le rend parfaitement en français.
Merci ,une fois de plus et à bientot pour d'autres chantiers
0