Элемент который появляется каждый раз при переписке с пользователем
Как сделать просмотр сообщений и чтобы каждый новый день отмечался как в сообщениях Discord?
$user_2 = htmlspecialchars(trim(stripslashes(mysqli_real_escape_string($connection, $_POST['user_2']))));
$mess = mysqli_query($connection, "SELECT * FROM `gialog` WHERE (`user_1` = '{$myInfo['unicalCode']}' AND `user_2` = '$user_2') OR (`user_2` = '{$myInfo['unicalCode']}' AND `user_1` = '$user_2') ") or die (mysqli_error($connection));
while ($message = mysqli_fetch_assoc($mess) ) {
else {
echo '
<div class="wrap_message">
<img class="avatar_sender" border="true" src="images/users/user.png">
<div class="wrap_info_sender">
<span class="name_sender transition_link">Имя</span>
<span class="time_sender">'.$message['time'].'</span>
</div>
<div class="text_message">'.$message['message'].'</div>
</div>';
}
}
Ответы (1 шт):
Автор решения: Yakoffka
→ Ссылка
Для начала необходимо описать метод, извлекающий дату из входящих данных. Надеюсь проблем с ним не возникнет.
...
public function getDate(string $rawDateTime): string
{
// в методе getDate() в зависимости от входящих данныъх
// опишите получение даты в любом формате, в Вашем случае строки:
return '12 июля 2020 г';
}
...
Затем в каждой итерации с его помощью получаете дату для текущего сообщения (getDate($message['time'])) и сравниваете её с предыдущей ($date):
$date = '';
while ($message = mysqli_fetch_assoc($mess)) {
$date = getDate($message['time']);
// если дата изменилась - добавляем разделительный блок
if ($date !== getDate($message['time'])) {
echo "<div class='separation_block'>$date</div>" . PHP_EOL;
}
echo '
<div class="wrap_message">
<img class="avatar_sender" border="true" src="images/users/user.png">
<div class="wrap_info_sender">
<span class="name_sender transition_link">Имя</span>
<span class="time_sender">' . $message['time'] . '</span>
</div>
<div class="text_message">' . $message['message'] . '</div>
</div>';
}
Вам осталось только написать разметку для <div class='separation_block'>.
ЗЫ: убрал лишний блок else из Вашего кода.
