Сортировка даты в PHP Event - PullRequest
1 голос
/ 18 ноября 2010

У меня есть календарь событий, который отображает события в порядке даты начала. Все отлично работает, но есть одна проблема. События, которые происходят в сегодняшнюю дату, не отображаются. Я считаю, что проблема заключается в том, что мое заявление «if» об удалении событий после их прохождения

<? 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')) {
?>

Ответы [ 2 ]

3 голосов
/ 18 ноября 2010

Прежде всего, я просто хочу отметить, что:

date('U') == time()

Так что вы можете использовать time вместо date.

Теперь для вашей проблемы.Если end_date вашего мероприятия установлено на сегодня, это, вероятно, в начале дня (то есть: 2010-11-18 00:00:00).Вероятно, поэтому ваше условие не работает, потому что сейчас более полуночи, текущая дата / время больше, чем end_date.

Попробуйте это:

if (strtotime($row['end_date']) == strtotime('TODAY')) {
    // event is today
}
0 голосов
/ 18 ноября 2010

Я предполагаю, что $ row ['end_date'] возвращает только дату, а не время. Таким образом, strtotime($row['end_date']) будет = 12:00 и date('U') будут возвращать текущее время.

Так что, если вы запустите это в 00:01 AM в дату $ row ['end_date'], вы получите сравнение

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

Попробуйте

if (strtotime($row['end_date']) >= strtotime(date('Y-m-d'))) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...