использование даты ('d-m-Y', strtotime ($ row ['original_date'])) изменяет порядок дат в таблице начальной загрузки - PullRequest
0 голосов
/ 08 сентября 2018

Мой код ниже. Тип столбца для сохранения дат в базе данных - DATE. Проблема в том, что если я поставлю $row['appointment_date'], то в таблице отображаются даты в порядке ГГГГ-мм-дд, но если я поставлю date('d-m-Y',strtotime($row['appointment_date'])), чтобы показать даты в желаемом формате (dd-mm-YYYY), то порядок изменится и покажет даты в порядке по дням, но не по месяцам и годам. Например, он показывает 02-05-2011, 03-03-2011, 05-01-2011 и т. Д. Я также попытался DateTime::createFromFormat, но проблема все еще существует. При использовании формата даты по умолчанию вывод будет default_date_format . Но при использовании формата d-m-Y вывод будет без_дефора_даты_1008 *

<?php
 $query = "SELECT * FROM appointment,users WHERE appointment.user_id=users.user_id AND users.role_id=2 ORDER BY appointment.appointment_date";
$result = mysqli_query($connection, $query);
    while($row=mysqli_fetch_array($result)){
                ?>
      <tr>
        <td><?php echo date('d-m-Y',strtotime($row['appointment_date'])); ?></td>
        <td><?php echo substr($row['appointment_time'],0,5); ?></td>
        <td><?php echo $row['type']; ?></td>
        <td><?php echo $row['appointment_notes']; ?></td>
       </tr>
        <?php
         }
?>

1 Ответ

0 голосов
/ 08 сентября 2018

попробуйте использовать

 ORDER BY appointment.appointment_date ASC"; 

или

 ORDER BY appointment.appointment_date DESC"; 

в вашем запросе ...

Если вы не укажете ключевое слово ASC или DESC, по умолчанию используется ASC или возрастающий порядок.

поэтому, когда вы используете yyyy-mm-dd, он возрастает по yyyy, а когда вы используете dd-mm-yyyy, он поднимается по dd. поэтому укажите asc или desc в запросе ...

поэтому ваш запрос должен быть

 $query = "SELECT * FROM appointment,users WHERE appointment.user_id=users.user_id AND users.role_id=2 ORDER BY appointment.appointment_date DESC";

Обновлено:

 $query = "SELECT * FROM appointment,users WHERE appointment.user_id=users.user_id AND users.role_id=2 ORDER BY STR_TO_DATE(appointment.appointment_date , '%Y-%m-%d') ASC";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...