Comparer la date serveur et ...

cs_christobal Messages postés 208 Date d'inscription jeudi 3 octobre 2002 Statut Membre Dernière intervention 31 mars 2011 - 29 oct. 2006 à 20:53
cs_christobal Messages postés 208 Date d'inscription jeudi 3 octobre 2002 Statut Membre Dernière intervention 31 mars 2011 - 2 nov. 2006 à 21:32
Bonjour, je souhaiterais pouvoir comparer la date du serveur avec la date saisie dans la BD.
Pour y voir plus claire, j'ai dans une db les champs id, date, lib.
Ainsi quand la date serveur et inferieur ou égale à la date db j'ai le message du champ "lib" de la date a venir.
Une foi la date bd passé c'est a  la suivante.
Et si il n'y a plus rien alor j'ai le message "Pas de date pour le moment"

J'ai fait le script suivant, mais il prend seulement en compte la premiere dans de la db.

<?php
$dateserveur = date("Y-m-d"); // Date du serveur
$datesortie = $row_dates_sortie['date'] ; // Date de la sortie

if ($dateserveur <= $datesortie) ;
{
echo $row_dates_sortie['lib'] ;
}
else
{
echo '
Pas de date pour le moment
' ;
}
?>

Pouvez-vous m'aider

Merci

7 réponses

cedriclomb Messages postés 275 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 27 avril 2010 1
1 nov. 2006 à 22:05
Salut
Bah moi je dirais que le plus simple ce serait de faire un truc du style :

($retour est l'array récupéré de la requette SQL)

SI dans ta BDD tu as une ligne par element

//comparaison de l'année
if($date('Y')= =$retour['annee'])
    {
    echo 'Annee identique !';
    }
....

Si tu as un timestamp alors tu fais un $base=getdate($retour['time'])
Et apres parrail tu compare les elements de ton array $base et de la fonction date()
0
cs_christobal Messages postés 208 Date d'inscription jeudi 3 octobre 2002 Statut Membre Dernière intervention 31 mars 2011
2 nov. 2006 à 09:37
J'utilise la fonction Y-m-d et c'est tres important de vérifier la date en entier.
Par contre je suis complétement perdu car plusieur personne mon donné des tuyos completement différents et je ne sais vraiement pas quoi faire.

Peux tu m'apporter une aide diffinitive.

merci
0
cedriclomb Messages postés 275 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 27 avril 2010 1
2 nov. 2006 à 10:07
Premiere chose, il faut savoir que en pprog il ya toujours plusieurs moyen d'arriver a un meme but donc il est normal que tu est plusieurs méthodes.
Soit tu fais des comparaisons de chaines soit tu compares elements par elements. L'avantage du elements par elements c'est simplement que tu peus retourner un message diferent a chaque elements.

Les 2 methodes

<?php
//premiere methode
$date_serveur=date('Y-m-d'); //retourne la chaine Y-m-d du serveur

//recuperetion de la date sql
mysql_connect($sql_host,$sql_usr,$sql_pass);
mysql_select_db($sql_db);
$sql="SELECT date FROM matable Limit 0,100";
$query=mysql_query($sql);
while($retour=mysql_fetch_array($query))
    {
   //comparaison de chaines
    if ($date_serveur= =$retour['date'])
       {
         echo "C'est la meme date";
       }   
    else
       {
        echo "C'est pas la meme";
       }
    }
mysql_close();
?>
<?php
//2eme  methode
//recuperetion de la date sql

mysql_connect($sql_host,$sql_usr,$sql_pass);

mysql_select_db($sql_db);

$sql="SELECT date FROM matable Limit 0,100";

$query=mysql_query($sql);
while($retour=mysql_fetch_array($query))

    {
    //separation de la chaine
    $date=explode("-","$retour['date']);
   
//comparaison Y
if (date('Y')= =$date[0])
    {
    echo "L'année est identiqueé;
    }
else
    {
    echo "Année différente";
    }
if (date('m')= =$date[1])

    {

    echo "Mois est identiqueé;

    }

else

    {

    echo "Mois différent";

    }
if (date('d')= =$date[2])

    {

    echo "Jour est identiqueé;

    }

else

    {

    echo "jour différent";

    }
    }
mysql_close();
?>
   
0
cs_christobal Messages postés 208 Date d'inscription jeudi 3 octobre 2002 Statut Membre Dernière intervention 31 mars 2011
2 nov. 2006 à 19:58
Je crois que je n'est pas été claire.
Je ne cherche pas a afficher toutes les dates (via une boucle) mais seulement la prochaine date dans ma db.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cedriclomb Messages postés 275 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 27 avril 2010 1
2 nov. 2006 à 20:01
et bah au lieu du while
 tu fais juste $retour=mysql_fetch_array($query)
et puis les tests que tu veux ensuite !
0
cedriclomb Messages postés 275 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 27 avril 2010 1
2 nov. 2006 à 20:03
Sinon tu peux faire une recherche du type

$aujourdhuy=date('Y - m - d');
$sql='SELECT * FROM matable WHERE date>='.$aujourdhuy;
$query=mysql_query($sql);
$retour=mysql_fetch_array($query)
et apres tu affiches
0
cs_christobal Messages postés 208 Date d'inscription jeudi 3 octobre 2002 Statut Membre Dernière intervention 31 mars 2011
2 nov. 2006 à 21:32
merci du coup de pouce j'ai utilisé la méthode 1 le pb est que si la date est passé il ne va pas a la date suivante.
je mexplique, dans ma table "date" j'ai 3 date de saisie.

ID        Date
1         2006-11-15
2         2006-11-20
3         2006-11-30

le script actuel s'arrete a l'id 1 alors qu'il devrait passé au suivant.
De plus j'aimerais que l'orsqu'il arrive a l'id3 (le dernier de la liste) il affiche le message "plus de dates pour le moment"
0
Rejoignez-nous