2010-11-18 7 views
1

J'ai un calendrier des événements qui affiche les événements dans l'ordre de la date de début. Tout fonctionne bien, mais il y a un problème. Les événements qui se produisent à la date d'aujourd'hui ne s'affichent pas. Je crois que ma déclaration «si» pour supprimer les événements après leur passage est le problème.Date de tri de l'événement PHP

<? while($row = mysql_fetch_assoc($result)) { 
$id = $row['id']; 
$title = $row['title']; 
$text = $row['text']; 
$image_url = $row['image_url']; 
$start_date = date('F d, Y', strtotime($row['start_date'])); 
$start_hour = $row['start_hour']; 
$start_minute = $row['start_minute']; 
$start_am_pm = $row['start_am_pm']; 
$end_date = date('F d, Y', strtotime($row['end_date'])); 
$end_hour = $row['end_hour']; 
$end_minute = $row['end_minute']; 
$end_am_pm = $row['end_am_pm']; 
$tba = $row['tba']; 

if(strtotime($row['end_date']) > date('U')) { 
?> 
+0

Quelle est votre requête est en cours d'exécution, le problème est là. De plus, il n'y a aucune raison de faire '$ id = $ row ['id']', utilisez juste $ row ['id'] 'pour garder votre code propre et pour gagner du temps – Webnet

Répondre

3

d'abord Je veux juste souligner que:

date('U') == time() 

vous pouvez donc utiliser time au lieu de date.

Maintenant pour votre problème. Si le end_date de votre événement est défini sur aujourd'hui, c'est probablement au début de la journée (par exemple: 2010-11-18 00:00:00). C'est probablement pourquoi votre condition ne fonctionne pas, parce que maintenant est passé minuit, la date/heure actuelle est supérieure à la end_date.

Essayez ceci:

if (strtotime($row['end_date']) == strtotime('TODAY')) { 
    // event is today 
} 
0

Je devine que $ row [ 'de date_fin'] ne retourne la date pas le temps. Donc, strtotime($row['end_date']) sera = 12:00 AM et date('U') sera égal à retourner l'heure actuelle.

Donc, si vous exécutiez ceci à 00h01 à la date de $ row [ 'date_fin'], vous auriez la comparaison des

if("12:00AM today" > "12:01AM today") { 

Essayez

if (strtotime($row['end_date']) >= strtotime(date('Y-m-d'))) {