|
dexter
| Inscrit le: 19 Mai 2006 |
| Messages: 14 |
|
|
 |
| Posté le: Mer 21 Juin 2006, 1:53 pm |
|
 |
 |
 |
 |
Bonjour
Voila je voulais savoir comment faire une soustraction de date.
J'ai un formulaire qui affhiche des informations à partir d'un certain temps :
depuis 3 jours, depuis 38 jours, depuis 98 jours.
Lorsque dans ma requette sql, je veux par exmple prendre les informations depuis 3 jours, je procede comme suit :
soit le champ dateinfo (type: Y-m-d), la date ou l'info à été posté, je fais donc :
$date_jour=date("Y-m-d");
$requette="Select....
from....
where ($date_jour-dateinfo)<=3" ;
Voila ça ne fonctionne tout simplement pas, est-ce qu'il faut peut-etre utiliser une fonction date en mysql (pour la date du jour), sinon d(ou peut provenir l'erreur
merci d'avance
|
|
|
|
Redox
Modérateurs

| Inscrit le: 07 Sep 2004 |
| Messages: 973 |
|
|
 |
| Posté le: Jeu 22 Juin 2006, 6:39 pm |
|
 |
 |
 |
 |
Salut,
Tout d'abord pour travailler avec les dates, il faudrait que tu utilises leur équivalent en timestamp, du style le script pour calculer l'écart entre deux dates:
<?php
// -- DATE 1 --
$date = "22/10/1989";
$jour = substr($date,0,2); // on récupère le jour
$mois = substr($date,3,2); // puis le mois
$annee = substr($date,6,4); // et l'annee ...
// on aurait également pu plutot utiliser
// list($jour,$mois,$annee) = explode("/",$date);
// on transforme la date en timestamp
$timestamp = mktime(0,0,0,$mois,$jour,$annee);
// -- DATE ACTUELLE --
// directement en timestamp.
$maintenant = time();
// -- CALCUL --
// on calcule le nombre de secondes d'écart entre les deux dates
$ecart_secondes = $maintenant - $timestamp;
// puis on tranforme en jours (arrondi inférieur)
$ecart_jours = floor($ecart_secondes / (60*60*24));
// enfin on affiche le résultat
setlocale("LC_TIME", "fr");
echo "$ecart_jours jours se sont écoulés depuis le ".strftime("%A %d %B %Y");
?> |
Mais si tu travailles avec MySQL, il y a encore plus facile car MySQL te fournit les fonctions sur mesure ! Alors va voir du coté de DATEDIFF !
 
|
|
|