Page 1 sur 1
[REGLE]Mauvaise date et Mauvaise heure timestamp
Posté : 25 janv. 2006, 21:10
par ratdelabo
Bonsoir,
en fait, tout est dans le titre. j'ai créé une table dans laquelle le timestamp est de type bigint (20) et 0 en défaut.
Le problème, c'est que la date et l'heure affichée sont celles de référence (le 1er janvier 1970 à 01h00 !).
Quelqu'un a une idée ?
merci d'avance.
Posté : 25 janv. 2006, 21:20
par Cyrano
Sans voir de code, difficile de trouver un bug

Posté : 25 janv. 2006, 21:23
par ratdelabo
Voici le code de la page dans laquelle doit s'afficher l'heure:
<div id="haut">
<h1>Les news sur Objectif SVT</h1>
</div>
<div id="contenu">
<div id="texte">
<?php
// On récupère les 5 dernières news
$retour = mysql_query('SELECT * FROM news WHERE valide = "1" ORDER BY id DESC LIMIT 0, 5',mysql_connect("****", "****", "****"));
while ($donnees = mysql_fetch_array($retour,MYSQL_ASSOC))
{
?>
<div class="news">
<div class="titre">
<?php echo $donnees['titre']; ?></div>
<div class="ecrit_par">
par <em><?php echo $donnees['pseudo'] ?></em> le <?php echo date('d/m/Y \à H\hi', $donnees['timestamp']); ?>
</div>
<div class="contenu_news">
<?php
//On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
$contenu = nl2br(stripslashes($donnees['contenu']));
echo $contenu;
?>
</div>
</div><br />
<?php
} // Fin de la boucle des news
?>
</div>
</div>
J'ai choisi le timestamp dans ma bdd mais il s'agit d'un simple système de news. Ne devrais-je pas utiliser plutôt un VARCHAR ou un type TEXT ?
Posté : 25 janv. 2006, 21:29
par Cyrano
E pourquoi pas tout simplement un type DATETIME ? Il me semble que ce serait particulièrement approprié et ça t'ouvre toutes les possibilité de fonctions SQL intégrées pour les tris sur date et heures, tu ne crois pas ?
Bon, il faudrait la reformater pour l'avoir dans le bon ordre puisque dans MySQL, ça enregistre au format aaaa-mm-jj hh:mn mais avec une petite expression régulière, on transforme ça au format jj/mm/aaaa hh:mn en une ligne de code.
Posté : 25 janv. 2006, 21:32
par ratdelabo
Je ne suis pas un expert et trouve ça plutôt compliqué lol
Posté : 25 janv. 2006, 21:44
par Cyrano
Ben suffit de demander, c'est pas si compliqué que ça, suffit de s'y mettre un jour. Voilà un exemple fonctionnel :
<?php
$date_mysql = "2005-12-08 12:47:57";
$masque = "#(\d{4})-(\d{2})-(\d{2})\s(\d{2}):(\d{2}):(\d{2})#";
$remplacement = "$3/$2/$1 $4H$5";
$date_fr = preg_replace($masque, $remplacement, $date_mysql);
echo("<p>". $date_fr ."</p>");
?>
Ce bout de code va afficher :
08/12/2005 12H47