Problème d'affichage de date...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème d'affichage de date...

par ouckileou » 26 avr. 2006, 13:39

Oui le problème vient de là, puisque la fonction date() (PHP) attend un nombre de secondes, et que MySQL te renvoie un date-heure

Ce que tu peux faire, c'est formater la date que tu récupères directement dans ta requête SQL, en utilisant date_format (fonction MySQL)

Ex :

Code : Tout sélectionner

SELECT DATE_FORMAT(champ_date,'%d/%m/%Y') FROM table;

par Letty45 » 26 avr. 2006, 13:35

Voici la valeur enregistrée dans la BDD automatiquement : 2006-04-24 00:00:00

voilou...

voila pourquoi j'ai cette fichue heure !

par ouckileou » 26 avr. 2006, 11:56

Tout ça pour dire que sauf erreur de ma part le timestamp UNIX utilisé par PHP et le timestamp de MySQL n'ont pas les mêmes formats...

par Ryle » 26 avr. 2006, 11:53

Tu ne veux vraiment pas nous indiquer la valeur de ton $timestamp ? :)

si ça se trouve on va te dire "suffit de modifier ça dans ta requête et le tour est joué"... ca sera quand meme plus simple de tout refaire non ? ;)

Edit : Damned ! grillé de peu... ;)

par ouckileou » 26 avr. 2006, 11:51

Avant de modifier ta table, tu ne veux vraiment pas nous montrer ce que ton code t'affiche comme valeur ?

Montre nous :
- la valeur contenue dans ta base de données (tu regardes et tu recopies)
- le code qui récupère et est censé afficher cette valeur formatée
- la valeur affichée quand tu fais un echo du timestamp récupéré

Parceque c'est peut-être une bête erreur qui casse tout à un moment donné, pas besoin d'aller si loin...
Par contre quand les gens qui esaient de t'aider te demandent des choses, donne les leur, ce sera plus simple pour tout le monde

par Letty45 » 26 avr. 2006, 11:47

Alors dans ce cas ! Le plus simple serait que ma base "date" change et redevienne date.

Dans ce cas comment faire pour qu'elle s'enregistre automatiquement, sans avoir besoin de créer un champ dans le formulaire de news ??

par ouckileou » 26 avr. 2006, 11:35

pour afficher l'heure simplement tu fais un date() ensuite tu as plusieurs variable d'heure jour ou autre mais c'est en anglais pour faire la modification tu as juste a redefinir les mots "day" "month" et autre.

Bonne chance
Merci =D>

Au golf ça s'appelle un coup dans l'eau non ? :lol:

C'est vrai aussi, ce serait tellement plus simle si tu affichais l'heure...

par Invité » 26 avr. 2006, 11:33

pour afficher l'heure simplement tu fais un date() ensuite tu as plusieurs variable d'heure jour ou autre mais c'est en anglais pour faire la modification tu as juste a redefinir les mots "day" "month" et autre.

Bonne chance

par ouckileou » 26 avr. 2006, 11:28

Pour info, un timestamp c'est le nombre de seconde depuis le 01/01/1970 (tiens, justement la date que tu obtiens...)

Donc quand tu récupères cette date, (alors que tu en attendais une autre bien entendu) c'est qu'il a sûrement pas su interpréter le paramètre, donc il a considéré qu'il y avait 0 sec depuis le 01/01/1970, donc que ton paramètre est sûrement mauvais.

Et comme dit Charabia, il doit donc y avoir un problème au niveau du format ;)

par Ryle » 26 avr. 2006, 11:22

Suffit d'utiliser substr() !! Tu coupes tout ce qui te gènes et on en parle plus ;)

Plus sérieusement, je pense que ca serait pas mal si tu nous donnait à nous aussi un petit apperçu de ce que contient ton $timestamp... vu que s'il est bon, nécessairement ta méthode date() fonctionne, et tu n'as par conséquent pas de problème :)

par ouckileou » 26 avr. 2006, 11:20

Ah bon, j'étais étonné qu'il n'y ait pas de guillemets (simples ou doubles) autour de date, dans $affich[date]

Et c'est la bonne date et la bonne heure ? Sous quelle forme ? Tu peux nous le dire, n'ais pas peur de donner trop d'informations :lol:

par charabia » 26 avr. 2006, 11:18

Je ne saisis pas trop. Si ton champ est de type timestamp, un echo $timestamp devrait te donner un résultat de ce genre : "1130338978" non ? Tu ne devrais pas voir la date et l'heure...

par Letty45 » 26 avr. 2006, 11:16

ben ça affiche la date et l'heure. Moi j'aimerai virer l'heure en fait...

par ouckileou » 26 avr. 2006, 11:14

Reste sur ce code :
$timestamp=$affiche[date];

echo date('d/m/Y', $timestamp); 
Si tu faisais un petit echo $timestamp; mmm ?
Ou encore echo $affiche[date];

Juste pour voir ce qu'il y a dedans quoi :P

par Letty45 » 26 avr. 2006, 11:08

Justement lol !

voila mon code pour afficher la date :

(... j'épargne tout le tralala pour récup. les données dans la base ... )

$timestamp=$affiche[date];

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

********

et là c'est le drame, ça m'affiche le 01/01/1970 :?

*********
j'ai aussi tenté les explode

$date1 = $affiche[date];

list($date, $time) = explode (" ", $date1);
list($hour, $min, $sec) = explode ( "; ", $time);
list($year, $month, $day) = explode ("-", $date);

echo $date = "$day/$month/$year"

*************

ici page blanche...