La communauté ALL HTML c'est 58004 membres à ce jour dont 1 inscrits aujourd'hui et 29 depuis une semaine.

  • imprimer
  • aide

Forum de discussions « PHP - SQL »

Retrouvez les publications relatives à ces discussions dans nos rubriques PHP, SQL.

comparer date

liste des forums liste des discussions Participer à la discussion

Photo de yoraf Message publié le samedi 19 avril 2008 à 01 h 19 par yoraf.
Bonjour,

Voila mon, probleme est simple j'ai sur ma base de donnée un champs 'Dateheure' ou est stocké la date et l'heure (ex :2008-04-06 23:57:09)

J'aimerais juste faire un if sur ma page PHP disant :

Si il y a moins de 7 jours par rapport a la date d'aujourd'hui et la date de ma base de donéne (Dateheure), alors on affiche : NEWS

Voila je me prend grave la tete j'espere que quelqu'un pourra m'aider a trouver la soluce !

Merci d'avance.
Photo de AdrienVH Message publié le samedi 19 avril 2008 à 01 h 38 par AdrienVH. L'informatique à portée de tous ! Une douce utopie ? Non... Un principe... /// http://www.adam-photographie.com
Salut !

J'ai trouvé la soluce pour un de mes sites mais je n'ai plus en tête toute ma fonction...

Je te la poste demain dans la journée ;)

Adrien
Photo de AdrienVH Message publié le samedi 19 avril 2008 à 12 h 00 par AdrienVH. L'informatique à portée de tous ! Une douce utopie ? Non... Un principe... /// http://www.adam-photographie.com
Re !

C'est bien ca que tu veux ?

http://adrienvanhamme.com/ALLHTML/yoraf/

Si oui, je posterai et expliquerai la source tout de suite après ;)

;)

Adrien
Photo de yoraf Message publié le samedi 19 avril 2008 à 14 h 37 par yoraf.
oui c ca ;)
Photo de DenisBrazz Message publié le samedi 19 avril 2008 à 14 h 49 par DenisBrazz. Un conseil, c'est toujours utile, même si on le suit pas Ca peut servir pour plus tard ou donner d'autres idées. Denis
Salut

une série de fonctions PHP pour les opérations sur les dates :

http://www.wikistuce.info/doku.php/php/classe/operation_sur_les_dates

A+
Denis
Photo de AdrienVH Message publié le samedi 19 avril 2008 à 15 h 30 par AdrienVH. L'informatique à portée de tous ! Une douce utopie ? Non... Un principe... /// http://www.adam-photographie.com
Bon alors c'est un peu massif mais d'autres viendront surement la corriger !!

<?php function MoinsDeSeptJours($valeur) { // Explosion de la chaine de caractères : // On aurait très bien pu utiliser un substr() aussi mais bon j'sais pas pourquoi aujourd'hui j'ai voulu essayer comme ça lol $parties = explode(' ',$valeur); $jour_glob = $parties[0]; $heur_glob = $parties[1]; $jour_expl = explode('-',$jour_glob); $heur_expl = explode(':',$heur_glob); $heure = $heur_expl[0]; $minute = $heur_expl[1]; $seconde = $heur_expl[2]; $annee = $jour_expl[0]; $mois = $jour_expl[1]; $jour = $jour_expl[2]; // On vire les zeros initiaux car mktime ne les supporte pas : if(substr($heure,0,1) == '0'){$heure = substr($heure,1);} if(substr($jour,0,1) == '0'){$jour = substr($jour,1);} if(substr($minute,0,1) == '0'){$minute = substr($minute,1);} if(substr($jour,0,1) == '0'){$jour = substr($jour,1);} if(substr($mois,0,1) == '0'){$mois = substr($mois,1);} // On calcule le nombre de secondes entre le 1er janvier 1970 (00h00) et la date dans ta base de données : $evenement = (mktime($heure,$minute,$seconde,$mois,$jour,$annee)); // On calcule le nombre de secondes entre le 1er janvier 1970 (00h00) et aujourd'hui : $maintenant = time(void); // On calcule le nombre de secondes entre aujourd'hui et l'événement : $secondes = $maintenant - $evenement; // On divise pour avoir en jour : $jours = $secondes / 86400; // On arrondi à l'entier supérieur : $jours = ceil($jours); // On teste pour savoir si on est à plus de 7 jours ou pas : if($jours > 7) { return FALSE; } else { return TRUE; } } ?>
Et ça s'utilise comme ça...

if(MoinsDeSeptJours($tonchamp)) { // Afficher ta news }
Comme dit dans la fonction, on aurait pu passer par un substr pour la premiere partie de la fonction mais comme je l'utilise ailleurs dans la fonction, j'ai voulu utiliser autre chose pour changer et apprendre à utiliser d'autres fonctions encore :)

Bon courage !

Adrien
Photo de yoraf Message publié le samedi 19 avril 2008 à 17 h 12 par yoraf.
merci effectivement il est tres balaise !
j'aurais penser voir un code bcp plus petit mais si il marche temps mieux, bon je vais le tester, je te remercie encore !
Photo de yoraf Message publié le dimanche 20 avril 2008 à 02 h 13 par yoraf.
merci bcp ca marche ;)
Photo de AdrienVH Message publié le dimanche 20 avril 2008 à 02 h 29 par AdrienVH. L'informatique à portée de tous ! Une douce utopie ? Non... Un principe... /// http://www.adam-photographie.com
J'en suis content lol...

Oui il est balaise mais il faut bosser sur une chaine de caracteres ce qui demande du boulot et en plus on utilise mktime qui est une fonction géniale mais qui gere tres mal les zeros initiaux donc on est obligé de tout retoucher :(

J'espere que d'autres viendront poster leurs idées/solutions... :)

Adrien
Photo de inca roads Message publié le dimanche 20 avril 2008 à 13 h 41 par inca roads.
Salut yoraf ,Salut Adrien ,

Je pense qu'il y'a plus simple comme traitement ,le tout en une seule ligne en comparant la date de la base de donnée avec (la date actuelle - 7 hours) mise sous ce format

date("Y-m-d H:i:s",time()-(24*7*3600))
Photo de AdrienVH Message publié le dimanche 20 avril 2008 à 16 h 16 par AdrienVH. L'informatique à portée de tous ! Une douce utopie ? Non... Un principe... /// http://www.adam-photographie.com
Bonjour inca roads...

Tu peux développer un peu stp, j'ai pas compris comment tu voulais procéder... :)

Merci...

Adrien
Photo de inca roads Message publié le dimanche 20 avril 2008 à 17 h 02 par inca roads.
Re Salut ,

Tu peux faire des comparaisons sur les chaines de caractères

exemple

if("2008-03-11 23:57:09" > "2007-03-11 23:57:09")

ou

if("2008-03-11 23:57:09" > "2008-03-11 23:57:08")

etc ...

donc tu peux faire ce type de test

$madate="2008-03-11 23:57:09";
$maintenant=date("Y-m-d H:i:s",time()-(24*7*3600));
echo $madate > $maintenant ? 'moins':'plus';

Le test est possible vu le format de la date

Année-Mois-Jour Heure:Minutes:Secondes

Si le format avait été

Jour-Mois-Année Heure:Minutes:Secondes

cela n'aurait plus aucun intérêt
Photo de inca roads Message publié le dimanche 20 avril 2008 à 17 h 09 par inca roads.
J'ai appelé la variable $maintenant ,j'aurais plutôt du l'appeler $maintenantmoins7j ou $nowm7j etc ...
Photo de inca roads Message publié le mercredi 23 avril 2008 à 10 h 24 par inca roads.
function MoinsDeSeptJours($valeur)
{
return ($valeur > date("Y-m-d H:i:s",time()-(24*7*3600))) ? true:false;
}

2 ème solution avec la fonction strtotime

http://www.manuelphp.com/php/function.strtotime.php


function MoinsDeSeptJours($valeur)
{
return (strtotime($valeur) > time()-(24*7*3600)) ? true:false;
}

après on peut toujours rendre ces fonctions plus paramétrables

liste des forums liste des discussions Participer à la discussion

Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.

Les 5 dernières discussions