Comparer la date serveur et ...

Signaler
Messages postés
208
Date d'inscription
jeudi 3 octobre 2002
Statut
Membre
Dernière intervention
31 mars 2011
-
Messages postés
208
Date d'inscription
jeudi 3 octobre 2002
Statut
Membre
Dernière intervention
31 mars 2011
-
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

Messages postés
275
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
27 avril 2010
1
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()
Messages postés
208
Date d'inscription
jeudi 3 octobre 2002
Statut
Membre
Dernière intervention
31 mars 2011

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
Messages postés
275
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
27 avril 2010
1
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();
?>
   
Messages postés
208
Date d'inscription
jeudi 3 octobre 2002
Statut
Membre
Dernière intervention
31 mars 2011

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.
Messages postés
275
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
27 avril 2010
1
et bah au lieu du while
 tu fais juste $retour=mysql_fetch_array($query)
et puis les tests que tu veux ensuite !
Messages postés
275
Date d'inscription
samedi 19 novembre 2005
Statut
Membre
Dernière intervention
27 avril 2010
1
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
Messages postés
208
Date d'inscription
jeudi 3 octobre 2002
Statut
Membre
Dernière intervention
31 mars 2011

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"