2013-08-23 2 views
1

Je montre la dernière activité sur mon forum, et j'extrais "$ mytime" de SQL. Et semble maintenant je ne peux pas comprendre cela:PHP aujourd'hui/hier dans le forum

$dates = date(" d-m-y",$mytime)); 
    if($dates == date('d-m-y')) { 
     $day_name = 'This day'; 
    } else if(); 
     $day_name = 'Another day'; 
    } 
    echo "$day_name"; 

Je ne peux pas comprendre celui-ci: } else if(); {

Y at-il plus de problèmes dans ce code?

+0

Oops, une erreur d'écriture ici. "} else if() {" mais encore besoin de réponse à mon problème. J'espère que cela pourrait aider les autres aussi. – Marius

Répondre

0

Oui il y a une problème avec ce code. Comme il devrait ressembler à ceci:

$dates = date(" d-m-y",$mytime)); 
if ($dates == date('d-m-y')) { 
    $day_name = 'This day'; 
} elseif (YOU-CAN-COMPARE IT TO SOMETHING ELSE AGAIN IN HERE) { 
    $day_name = 'Another day'; 
} 
echo "$day_name"; 

Ou si vous n'êtes pas disposé à le comparer pour une deuxième fois, utilisez ceci:

$dates = date(" d-m-y",$mytime)); 
if ($dates == date('d-m-y')) { 
    $day_name = 'This day'; 
} else { 
    $day_name = 'Another day'; 
} 
echo "$day_name"; 
+0

A travaillé parfaitement! – Marius

1

en php la syntaxe est:

} elseif(/* conditions */) { 

Bien que s'il n'y a pas des conditions, tout simplement ne

} else { 

MISE À JOUR: Voir les commentaires

if(date('Ymd') == date('Ymd', strtotime($mytime))){ 
    $day_name = 'This day'; 
} else { 
    $day_name = 'Another day'; 
} 
echo $day_name; 
+0

Le principal problème est que je ne peux pas comprendre comment écrire le PHP pour "$ dates - 24 heures" – Marius

+0

Essayez d'utiliser strtotime. Voir la mise à jour –

+0

Cela n'a pas fonctionné, juste eu "un autre jour" pour les sujets publiés hier et aujourd'hui. – Marius

0
$day_name = ($dates == date('d-m-y')) ? 'This day' : 'Another day'; 

opérateur ternaire suffit, ou tout simplement utiliser

if(this is true){ 

} else { 

} 
1

Il est un peu en désordre, mais vous pouvez essayer quelque chose comme ceci:

$dates = date("d-m-y",$mytime)); // you have an extraneous space here 
if($dates == date('d-m-y')) { 
    $day_name = 'Today'; 
} else if($dates === date("d-m-y", strtotime("-1 day")); 
    $day_name = 'Yesterday'; 
} 
echo "$day_name"; 

Référence strtotime: http://php.net/manual/en/function.strtotime.php

Vous comprendre.

+0

Je suggère plutôt le format Y-m-d', ou au moins 'd-m-Y'. Le premier triera correctement (si nécessaire). Cependant, c'est la meilleure réponse que je vois ici. –

+0

Je suis d'accord sur Y-m-d pour plus de clarté, mais n'importe quel format fonctionnerait dans ce cas. Ne vous inquiétez pas de la performance. – vidario

+0

Je sais, aucune offense signifiait. Juste clarifier pour l'OP ... Et quelqu'un d'autre. ;-) – vidario

0

sinon si c'est pour d'autres conditions que vous voulez mettre et vérifier par exemple.

if(){ 
     if part is true then run this}; 
    else if(){ 
       else if part true then run this}; 

dans votre cas, il est tout simplement inutile ... donc gardez ou le supprimer ne fait pas differece ..

0

Pour obtenir la date d'hiers utilisent ce ...

date("Y-m-d", strtotime("-1 day"));