MySQL date 01/01/1970 et non date courante !

Ga3z Messages postés 67 Statut Membre -  
Ga3z Messages postés 67 Statut Membre -
Bonjour,
j'ai un formulaire dans lequel je récupère des données vers une table MySQL "agenda" avec

mysql_query("INSERT INTO agenda VALUES('', '" . $titre . "', '" . $contenu . "', '" . time() . "')");

dans cette table j'ai 3 champs dont un: timestamp ( bigent(20) défaut=0 )
et ça fonctionne bien: la date qui s'affiche est bien celle qu'il faut: par exemple 08/08/2008 si la saisie a eu lieu aujourd'hui
ce que je ne pige pas, c'est que j'ai un autre formulaire dans lequel je récupère des données vers une table "inscriptions" avec
mysql_query("INSERT INTO puces VALUES('', '" . $nom . "', '" . $prenom . "', '" . $adresse . "', '" . $cp . "', '" . $localite . "', '" . $tel . "', '" . $email . "', '" . $mint . "', '" . $mext . "', '" . $ptot . "', '" . $paimt . "', '" . $solde . "', '" . time() . "')");

dans cette table, j'ai 13 champs dont un: timestamp ( bigent(20) défaut=0 ) (donc identique à la précédente table)
et là mystère !!! pourquoi la date qui s'affiche est-elle systématiquement 01/01/1970 ?!!!
j'en perds mon latin !
où me suis-je trompé ?!!!

10 réponses

zoubiock
 
Pourquoi tu n'utilises pas now() ?

mysql_query("INSERT INTO puces VALUES('', '" . $nom . "', '" . $prenom . "', '" . $adresse . "', '" . $cp . "', '" . $localite . "', '" . $tel . "', '" . $email . "', '" . $mint . "', '" . $mext . "', '" . $ptot . "', '" . $paimt . "', '" . $solde . "', now())");
0
amjahed Messages postés 350 Statut Membre 123
 
Salut,
Peut-être que le formulaire est rempli avec deux chiffre (01 au lien de 2001)

Voir :
http://dev.mysql.com/doc/refman/5.0/fr/datetime.html

Extrait 1 :
N'oubliez pas que même si les valeurs DATETIME, DATE, et TIMESTAMP peuvent être spécifiée avec différents formats, ces types n'ont pas les mêmes intervalle de validité. Par exemple, les valeurs de type TIMESTAMP ne peuvent pas prendre de valeur antérieure à 1970 ou postérieure à 2037. Cela signifie qu'une date telle que ‘1968-01-01’, est légale dans les colonnes de type DATETIME, mais n'est pas valide pour les TIMESTAMP, et sera convertie en date zéro (0) si elle est assignée à une telle colonne.

Extrait 2 :
#Les années spécifiée avec deux chiffres seulement sont ambiguÏs, car il manque le siècle. MySQL interprète les années à deux chiffres suivant ces règles :
* Les années de l'intervalle 00-69 sont converties en 2000-2069.
* Les années de l'intervalle 70-99 sont converties en 1970-1999
0
Ga3z Messages postés 67 Statut Membre 6
 
- avec now() ça change rien

- il n'y a pas de champ date dans mes formulaires: time permet de générer la date dans la table

je récupère ensuite la date ainsii: <?php echo date('d/m/Y', $donnees['timestamp']); ?>

pourquoi ça marche dans l'un et pas dans l'autre ?!!!
0
medoc13 Messages postés 65 Statut Membre 21
 
Salut, le time dans ton formulaire d'inscription correspond a quoi?
0

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

Posez votre question
Ga3z Messages postés 67 Statut Membre 6
 
en principe le time() donne la date du jour

mais j'ai trouvé: il fallait virer 'd/m/Y', dans <?php echo date('d/m/Y', $donnees['timestamp']); ?>
(mais maintenant ça m'affiche les heures en plus !!!)

par contre je ne comprends pas comment ça se fait que ça marche dans une autre page....j'avais trouvé ce script sur le site du zero (c'était un script de news)

bon maintenant mon problème c'est de virer les heures...
0
medoc13 Messages postés 65 Statut Membre 21
 
une autre question:
le donnees['timestamp'] c'est celui que tu as recupere au debut,
si c'est ça et que tu l'utilise tel quel ça ne fonctionneras pas
essaye ça dans ton while
$timestamp = strtotime($row['timestamp']);
<?php echo date('d/m/Y', $timestamp); ?>
0
Ga3z Messages postés 67 Statut Membre 6
 
mais pourquoi sur ce script: https://openclassrooms.com/fr/courses
ça marche tel quel ?!!!
je l'ai testé en recopiant tout les scripts indiqués ! Pourquoi sur le mien , non ?!!!
0
amjahed Messages postés 350 Statut Membre 123
 
Version de MySQL ?? TIMESTAMP à un comportement diffèrent avant MySQL 4.1
0
medoc13 Messages postés 65 Statut Membre 21
 
est ce que la solution que je t'est donne fonctionne, sinon fais voir ton script en entier page par page
0
Ga3z Messages postés 67 Statut Membre 6
 
medoc13: non ça ne marche pas: ça remet la date à 01/01/1970

amjahed: ça ne peut pas être la version de MySQL, car j'ai testé avec les deux script avec la même version.
La seule différence entre les 2 scripts, c'est que j'ai morcelé celui du zéro en plusieurs pages pour faire le mien, parce que ça me facilitait les choses
Je vais tout revoir de A à Z
0