SO Я написал код для получения списка предстоящих событий в течение следующих 7 дней, и он отлично работает и дает мне список предстоящих событий. Но проблема заключается в том, что он также дает запись событий прошлых дней. Вот мой код:Проблема В выборе для предстоящих событий
$today = strtotime("Now");
echo date('Y-m-d :H:i:s',$today)."<br>";
$leadDate = strtotime("+7 day", $today);
echo date('Y-m-d :H:i:s',$leadDate)."<br>";
$rs = mysql_query("SELECT * FROM names WHERE due_date BETWEEN CURDATE() AND '$leadDate'") or die(mysql_error());
echo "<b>Dues for upcoming 7 days</b><br>";
while($row=mysql_fetch_assoc($rs))
{
echo $row['name']." => ".$row['normal_date']."<br>";
}
У меня есть таблица:
id| name | due_date | normal_date
|1|name1|1390245240|Mon, 20 Jan 2014 19:14:00 GMT
|2|name2|1390331640|Tue, 21 Jan 2014 19:14:00 GMT
|4|name3|1390418040|Wed, 22 Jan 2014 19:14:00 GMT
|5|name4|1390590840|Fri, 24 Jan 2014 19:14:00 GMT
|6|name5|1390850040|Mon, 27 Jan 2014 19:14:00 GMT
|7|name6|1390936440|Tue, 28 Jan 2014 19:14:00 GMT
|8|name7|1396034040|Fri, 28 Mar 2014 19:14:00 GMT
|9|name8|1398708840|Mon, 28 Apr 2014 18:14:00 GMT
|10|name9|1390158840|Sunday, 19 Jan, 2014
|11|name10|1390072440|Saturday, 18 Jan, 2014
|12|name11|1390176000|20 Jan, 2015
сегодня сервера дата 19 января 2014, но это также дает мне список: 18 Янв 2014, но я ищу следующий 7 дней record.and мой текущий сценарий дает мне следующий из положить:
2014-01-19 :20:44:30
2014-01-26 :20:44:30
Dues for upcoming 7 days
name1 => Mon, 20 Jan 2014 19:14:00 GMT
name2 => Tue, 21 Jan 2014 19:14:00 GMT
name3 => Wed, 22 Jan 2014 19:14:00 GMT
name4 => Fri, 24 Jan 2014 19:14:00 GMT
name9 => Sunday, 19 Jan, 2014
name10 => Saturday, 18 Jan, 2014
name11 => 20 Jan, 2015
Так почему же 18 января 2014 & 20 января 2014 идет в записи, где я нахожусь wrong.Please Помощь. Спасибо заранее.
Спасибо за ответ. Разбитый ... он решил мою 1 проблему предыдущего дня, придя к результату, но вы можете видеть, что на моем месте поставлена дата следующего года (20 января 2015 года). –
@ user1168942 это из-за вашего unixtimestap не правильно, есть '1390176000', который не равен этой дате, снова проверьте отметку времени. Временной меткой для него является '1390229100'. Если это поможет вам пометить его как принятое. –
Да, я так думаю. Я получаю этот 'UNIXTIMESTAMP' от' $ str = "15 января, 2015 г."; echo $ h = strtotime ($ str); die; 'this code.is этот неправильный метод? –