Вывожу дату из базы - если сегодняшняя дата то зеленым цветом, если вчерашняя то красным. PHP: $select_date = "SELECT date FROM vakans"; $query_date = mysqli_query($dsd, $select_date); $row_date = mysqli_fetch_array($query_date); if($row_date[date] = ??? сегодня){ echo '<td bgcolor="green">';} echo $row_date[date]. '</td>'; else { $row_date[date] = ??? вчера echo '<td bgcolor="grey">';} echo $row_date[date]. '</td>'; Если можете подскжите
PHP: if($row_date['date'] == date("Y-m-d")) { //сегодня } elseif($row_date['date'] == date("Y-m-d", time() - 86400)) { //вчера } P.S.: date - зарезервированное слово в SQL. Если используется в имени атрибута - желательно брать в кавычки в SQL-запросе
Почему то не получается. не выводите ничего ни сегодня ни вчера. В чем причина? В базе храниться дата в формате date , в базе записоно вот так - 2017-06-30 --- Добавлено --- Может метод изначально не правильный? может есть более правильный ?
PHP: $select_date = "SELECT `date` FROM `vakans`"; $query_date = mysqli_query($dsd, $select_date); $row_date = mysqli_fetch_array($query_date); if ($row_date['date'] == date("Y-m-d")) { echo '<td bgcolor="green">'.$row_date['date']. '</td>'; } else { echo '<td bgcolor="grey">'.$row_date['date']. '</td>'; }
Нельзя так сравнивать даты, вы чего хоть парни??? Для корректного сравнения надо юзать strtotime либо DateTime
Для сокращения кода, бы сделал подстановку green grey немного по другому. PHP: $select_date = "SELECT `date` FROM `vakans`"; $query_date = mysqli_query($dsd, $select_date); $row_date = mysqli_fetch_array($query_date); $color = ( $row_date['date'] == date("Y-m-d") ) ? 'green' : 'grey'; echo '<td bgcolor=" ' . $color . ' ">'.$row_date['date']. '</td>'; или так: PHP: $select_date = "SELECT `date` FROM `vakans`"; $query_date = mysqli_query($dsd, $select_date); $row_date = mysqli_fetch_array($query_date); echo '<td bgcolor=" ' .( ( $row_date["date"] == date("Y-m-d") ) ? green : grey ). ' ">'.$row_date['date']. '</td>';
Хороший совет. Что выведет PHP: var_dump($row_date); Может запрос не выводит ничего. И что-то мне кажется, что надо сравнивать с этим: $row_date[номер строки]['date'] PHP: foreach($row_date as $one_date) { if($one_date['date'] == ... } Можно, конечно, написать отдельную функцию, где все преобразовать в секунды, но тут и в таком виде должно норм сравнивать.
Сделал так: PHP: $rt = $row_date['date']; $dt = date("Y-m-d"); if($ro['date']){ if(strtotime($rt) == strtotime($dt)){ echo '<td id="color_skrin">'; //echo date("d.F.y", strtotime($row_date['date'])). '</td>'; echo rus_date("j M ", strtotime($row_date['date'])). '</td>'; } else { //вчера elseif($row_date['date']) id="color_skrin2" echo '<td id="color_skrin2">'; echo rus_date("j M ", strtotime($row_date['date'])). '</td>'; } } Работает. Вот это выглядит очень красиво, но как не пытался что то не смог прикрутить --- Добавлено --- --- Добавлено --- Всем спасибо !