MySQL date 01/01/1970 et non date courante !
Ga3z
Messages postés
67
Statut
Membre
-
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
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
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é ?!!!
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é ?!!!
A voir également:
- MySQL date 01/01/1970 et non date courante !
- Jm date avis - Forum Consommation & Internet
- Jm date désabonnement ✓ - Forum Consommation & Internet
- Abonnement jm date - Forum Consommation & Internet
- Prélèvement JM Jacquie et Michel date. - Forum Consommation & Internet
- Airpods 3 date de sortie - Guide
10 réponses
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())");
mysql_query("INSERT INTO puces VALUES('', '" . $nom . "', '" . $prenom . "', '" . $adresse . "', '" . $cp . "', '" . $localite . "', '" . $tel . "', '" . $email . "', '" . $mint . "', '" . $mext . "', '" . $ptot . "', '" . $paimt . "', '" . $solde . "', now())");
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
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
- 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 ?!!!
- 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 ?!!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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...
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...
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); ?>
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); ?>
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 ?!!!
ça marche tel quel ?!!!
je l'ai testé en recopiant tout les scripts indiqués ! Pourquoi sur le mien , non ?!!!
est ce que la solution que je t'est donne fonctionne, sinon fais voir ton script en entier page par page
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
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