Si date du jour <=

Résolu
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -  
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'affiche une date depuis ma table avec :
echo $data['DateLimite'];

J'aimerais dans la même condition lui dire ceci :
Si la date du DateLimite = aujourd'hui alors affiche : Dernier jour !
Si la date du DateLimite > aujourd'hui alors affiche : Terminé
Sinon affiche la date DateLimite

Pouvez-vous m'aider svp ?

A voir également:

11 réponses

apprendreEtSeDevelopper Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   6
 
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
Salut,

tout va dépendre du format dans lequel ta date est stockée
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Merci pour vos réponses

Voilà ce que j'ai fais, mais ca ne fonctionne pas :
$DateDuJour = date ('Y/m/d');
$DateLimite = $data['LimiteDuCastingue'];

    if ($DateLimite == $DateDuJour){$Affiche = 'Dernier jour !';}
elseif ($DateLimite >= $DateDuJour){$Affiche = 'Terminé';}
  else {$affiche = $data['LimiteDuCastingue'];}

echo $Affiche;


Dans ma table , le champ est au format 'Date'
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Je ne lui ai pas donné de type :$

$req = mysql_query("SELECT * FROM tb_Castingue ORDER BY MiseEnLigne;");
while($data = mysql_fetch_assoc($req)){
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Salut !

Surement pcq $DateLimite est un string ;-)
Essaye $DateLimite = date('Y/m/d', strtotime($data['LimiteDuCastingue']));
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
Il faut que tu mettes tes 2 variables dans un format similaire pour les comparer.

$DateDuJour = date ('Ymd');
$DateLimite = date('Ymd', strtotime($data['LimiteDuCastingue']));

ou bien tu peux passer par un objet date, mais comme ça je pense que ça va fonctionner
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Merci merci merciiiiii ^^
0

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

Posez votre question
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
svp, encore un truc :
setlocale (LC_TIME, 'fr_FR.utf8','fra');

$DateJ      = date('d/m/Y');
$DateDuJour = strftime("d/m/Y", strtotime($DateJ));
$DateLimite = strftime('d/m/Y', strtotime($data['LimiteDuCastingue']));

    if ($DateLimite  < $DateDuJour){$Affiche = $DateLimite;}
elseif ($DateLimite == $DateDuJour){$Affiche = 'Dernier jour !';}
elseif ($DateLimite  > $DateDuJour){$Affiche = 'Terminé';}
  else {$affiche = $DateLimite;}

echo $Affiche;


Je n'arrives pas à afficher la date au format d/m/Y

Pouvez-vous m'aider svb ?
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
pourquoi tu passes par un strftime maintenant ?

Ton script fonctionne ? les paramètres que tu passes à ta fonction ne sont pas bons.
https://www.php.net/strftime

c'était très bien avec une fonction date() je sais pas ce que t'es allé chercher là...
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
+1 pour TheBishop !

D'autant plus qu'avec date() tu peux mettre le format que tu souhaites :
$today = date('d/m/Y');
$dateLimite = date('d/m/Y', strtotime$data['LimiteDuCastingue']));
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
je conseille quand même un format Ymd pour une comparaison numérique ;)
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Après c'est comme il veut ^^
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Merci à tous !

<?php
$DateDuJour = date ('d/m/Y');
$DateLimite = date('d/m/Y', strtotime($data['LimiteDuCastingue'])); 

    if ($DateLimite  > $DateDuJour){$Affiche = $DateLimite;}
elseif ($DateLimite == $DateDuJour){$Affiche = 'Dernier jour !';}
elseif ($DateLimite  < $DateDuJour){$Affiche = 'Terminé';}
  else {$affiche = $DateLimite;}

echo $Affiche;
?>
a fonctionné.

Je ne sais pas, vu que c'est un affichage public, je ne sais pas si le Ymd serait le bienvenue...
Toute façon, vu qu'il fonctionne et qu'il n'y a pas de problème, je vous remercie pour votre aide.
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
tu verras le mois prochain, ça ne fonctionnera plus ;)
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Oups... tu as raison ! Il ne fonctionne plus !

Hé ben...
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
C'est pas bien compliqué à comprendre.

Déjà, tu essaies de faire une comparaison numérique sur des chaines de caractères...
Je ne sais plus exactement comme ça fonctionne côté PHP, mais il me semble qu'il compare les valeurs numériques de ta variable et s'arrête dès qu'une trouve un caractère non numérique.

En gros, tu compares les jours entre eux.

Si tu passes par un date("Ymd"), tu as une chaine de caractère qui comprend l'année, le mois et le jour, tu pourras alors comparer tes dates tranquillement.
Sinon, comme je l'ai dis, tu passes par un objet date, ça marche aussi et tu peux l'afficher dans le format qui te convient.
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Et donc, soit je fais un Ymd soit pas de calcul correct ?
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
$today = new DateTime();
$dateLimite = new DateTime();
$dateLimite->setTimestamp(strtotime($data['LimiteDuCastingue']));

if ($DateLimite > $DateDuJour){$Affiche = $DateLimite->format('d/m/Y');}
elseif ($DateLimite == $DateDuJour){$Affiche = 'Dernier jour !';}
elseif ($DateLimite < $DateDuJour){$Affiche = 'Terminé';}
else {$affiche = $DateLimite->format('d/m/Y');}

echo $Affiche;
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
quelques petites erreurs ^^

$today ou $DateDuJour ?
$dateLimite ou $DateLimite ?

la comparaison d'égalité ne marchera pas. Tu compares un objet à un autre objet, un objet ne peut être égal qu'à lui même.

il faut comparer des valeurs, et non pas des objets
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
$today = new DateTime(); 
$dateLimite = new DateTime(); 
$dateLimite->setTimestamp(strtotime('2013-07-02')); 

if ($dateLimite->format('Ymd') > $today->format('Ymd')){$affiche = $dateLimite->format('d/m/Y');} 
elseif ($dateLimite->format('Ymd') == $today->format('Ymd')){$affiche = 'Dernier jour !';} 
elseif ($dateLimite->format('Ymd') < $today->format('Ymd')){$affiche = 'Terminé';} 
else {$affiche = $dateLimite->format('d/m/Y');} 

echo $affiche; 


là ça fonctionne.
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Pardon pour les erreur de syntaxe dans les variables ^^

Sinon les comparaisons avec == marchent normalement, je l'avais fait dans un projet précédent et ca marchait parfaitement. Un while($date <= $dateLimite) il me semble
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Non, il m'envois tout en Terminé :p

$today = new DateTime(); 
$dateLimite = new DateTime(); 
$dateLimite->setTimestamp(strtotime('2013-07-02')); 

    if ($dateLimite->format('Ymd')  > $today->format('Ymd')){$affiche = $dateLimite->format('d/m/Y');} 
elseif ($dateLimite->format('Ymd') == $today->format('Ymd')){$affiche = 'Dernier jour !';} 
elseif ($dateLimite->format('Ymd')  < $today->format('Ymd')){$affiche = 'Terminé';} 
  else {$affiche = $dateLimite->format('d/m/Y');} 

echo $affiche;
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
oui, normal, j'ai laissé une date de test, remplace par ta valeur
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Prffff, c'est le problème du copy/past (désolé)

Effectivement, ca fonctionne ^^

Mer reste plus qu'a remplacer la date du jour par celle du serveur et c'est ok :p

Merci encore à tous pour votre aide précieuse !
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
$today = new DateTime(); prend automatiquement la date du jour.
0
Sinistrus Messages postés 1010 Date d'inscription   Statut Membre Dernière intervention   17
 
Encore une fois merci !
0