Как дату выводить 1 раз? (как во Вконтакте)
Т.е. написал вчера будет 10-ое февраля и 100 сообщений без даты этого дня.
Написал сегодня, будет 13-ое февраля и ниже сообщения за 13-ое.
В бд лежит каждое сообщение с датой.
Пишу чат ботов, телеграм ботов, ботов во вконтакте
Вопрос закрыт.
Как всегда банальная ошибка:
ul.append('<div
на
ul.prepend('<div
Для справки:
node.append(...nodes or strings) – добавляет узлы или строки в конец node,
node.prepend(...nodes or strings) – вставляет узлы или строки в начало node,
Артемий Фамилий, там не сложно поправить под любые условия. А что у вас выводиться без понятия, так как вашего кода не вижу... Давайте свой код, тогда можно будет что то сказать.
Артемий Фамилий, нет проблема не в этом, а гадать не хочеться, код целиком не привели... скрины залить не можете... образца данных нет... разбирайтесь сами тогда.
Артемий Фамилий, посмотрел код, во первых если в переменную res_d установили по условию значение, на следующей итерации она такой же и останется, объявлять ее пустой нужно в теле цикла. Далее в самом javascript стоит вывести дату после сообщения, чему вы тогда удивляетесь?
Артемий Фамилий, кстати зачем вообще эту задачу решать в пхп, если ее надо решать в javascript? А еще бы не плохо посмотреть на ответ скрипта, киньте json глянуть
Евгений, вот на JS, всё так же, ситуация не изменилась.
var last = '';
data.forEach(function(d){
var dad = d.createdAt; // это $value['mess_data'] дата сообщения
if(last != dad){
console.log("yes");
var flag = d.flag;
}else{
console.log("no");
var flag = "";
}
console.log(last);
console.log(dad);
//console.log(d.flag);
ul.append('<div class="message ng-star-inserted">'+
'<div class="message-wrapper">'+
'<div class="message ng-star-inserted">'+
'<p class="message-text">' + d.text +
'<span class="message-time">' + d.timeAgo +
'</span>'+
'</p></div></div></div>'+flag);
last = dad;
});