Les dates

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 : Les dates

par ouckileou » 27 août 2007, 09:43

Non si tu utilises un format DATE (ou DATETIME pour des news, il y en a plusieurs pajour parfois)
tu pourras utiliser la fonction NOW() à l'insertion, pour enregistrer la date courante.

Puis d'autres fonctions si tu veux faire des manips, voir dans la FAQ :
http://www.phpfrance.com/forums/voir_sujet-8323.php

Sinon, ça reste assez simple :

Code : Tout sélectionner

INSERT INTO news (titre, date_crea, categorie) VALUES ('News du 27/08', NOW(), 7); SELECT titre, date_crea, categorie FROM news WHERE date_crea <= NOW();
Si tu veux utiliser le timestamp MySQL, fais attention, il y a des particularités suivant la version, concernant le format et les mises à jour :
http://dev.mysql.com/doc/refman/5.0/fr/datetime.html

Pour ton histoire de 1994, je ne sais pas ce que tu as fais donc c'est difficile. Mais je pense que tu essaies d'insérer le résultat d'un time() dans une colonne date, donc il transforme et t'insères une date bidon.

par Dom! » 27 août 2007, 08:59

Donc si je comprend bien il faut que mon champ date soit au format "date", et je pourrai continuer à utiliser timestamp pour insérer les dates dans ma base ?

J'ai donc suivis ce processus mais mon probleme c'est que l'année reste toujours la même. je m'explique :

J'inscris : 28/08/2007 et il est inseré dans ma base : 28/08/1994

j'ai beau mettre n'importe quelle date il s'inscrira toujours 1994

pourquoi 1994 et pas 2000 par exemple ?
Si quelqun peux m'aider. merci

par ouckileou » 26 août 2007, 00:25

Et pourquoi n'utilises tu pas un champ DATE ou TIMESTAMP ?
Oui, pourquoi ?

Un champ DATE prend moins de place et te permet d'utiliser les fonctions de calcul de MySQL.

Je ne fais que répéter ce qui a déjà été dit, mais un jour tu pourrais regretter de ne pas avoir utilisé le bon format...

par Dom! » 25 août 2007, 22:39

Merci pour votre aide !! il suffisait d'utiliser time();

Ca fonctionne parfaitement.

par Sékiltoyai » 25 août 2007, 19:45

Et pourquoi n'utilises tu pas un champ DATE ou TIMESTAMP ?

par Dom! » 25 août 2007, 19:43

Mon champ date a pour format : VARCHAR(30)

par Ryle » 25 août 2007, 19:30

Quel est le format de ton champ date ? (dont le nom, qui est également un mot clé réservé sql, est loin d'être judicieux)

Regarde les valeurs de ton champ en base et celle du timestamp que tu génères tu verras vite s'il est normal ou pas que tous tes enregistrements s'affichent. Et pourquoi ne pas utiliser les fonctions dates de mysql comme NOW() pour avoir la date du jour ?

Les dates

par Dom! » 25 août 2007, 19:26

Bonjour,

Je dois comparer la date de mes news à la date du jour et n'afficher que les dates plus anciennes ou égales à la date du jour.

voici donc ce que j'ai fais :
<?php
		$ojourdui = date('d/m/Y');
		$limite = strtotime($ojourdui);

		 $sqldip = 'select * from nuked_news where date <= '.$limite.' ORDER BY date DESC LIMIT 0, 5';
		
   // $nbsql += 1;
	if ($resselectdip = mysql_query($sqldip)) {
		while ($selectdip = mysql_fetch_array($resselectdip))
		{
		$cat = $selectdip['cat'];
		 $titre = $selectdip['titre'];
		 $titre = tronquage($titre, 64);
		 $titre = stripslashes($titre);
		 $titre = strtoupper($titre);
		 $image = $selectdip['image'];
		 $auteur = $selectdip['auteur'];
		 $id = $selectdip['id'];
		 
		 $sqlent = 'select * from nuked_news_cat where nid = '.$cat;
		if ($resselectent = mysql_query($sqlent)) {
		 $selectent = mysql_fetch_array($resselectent);
		 $catego = $selectent['titre'];
		 $image = $selectent['image'];
		 $date = $selectdip['date'];
         $date = strftime("%A %d %B %Y", $date);
		

		    
     echo '<tr > 
    <td class="block-fondco" width="12%" rowspan="2"><div align = "center" valign="top"><img src="'.$image.'" width=30 heigth=30><br /><br />
	  <br /></div></td>
    <td width="88%"><div align = "left" valign="middle"><a href="index.php?file=News&op=index_comment&news_id='.$id.'"><span class="titre">'.$titre.'</span></div></td>
    </tr>
	<tr>
	<td><div align = "left" valign="middle"><a href="index.php?file=News&op=index_comment&news_id='.$id.'">'.$date.' - <span class="catego">'.$catego.'</span> - Postée par '.$auteur.'</a><br /><br /><img src="themes/Impact_Seruix/images/Bleu/trait.png">
	  <br /><br />
	  </div></td></a>
	</tr>';
	  }
		}
		}
		echo '<br /><div align = "right" valign="bottom"><a href="index.php?file=News"><span class="catego">Voir toutes les news</a></span></div>';
	 ?>
Mon probleme c'est que toutes mes news s'affiche ! meme celles qui sont supérieur à la date du jour ! pourquoi ?
Merci d'avance