В json файле хранятся сообщения пользователей чата. Нужно выводить на экран все сообщения за последний час.
Вот в эту таблицу сообщения выводятся.
<table id="messages">
<tr class="mess_hide">
<td class="time"></td>
<td class="name"></td>
<td class="message"></td>
</tr>
</table>
Так выглядит вывод только что введенных сообщений
function(arr) {
arr = $.parseJSON(arr)
$('#messages').append($('.mess_hide').clone().addClass('mess_tmp').removeClass
('mess_hide'));
$('.mess_tmp>.time').html(arr.time);
$('.mess_tmp>.name').html(arr.user);
$('.mess_tmp>.message').html(arr.message);
$('.mess_tmp').removeClass('mess_tmp');
}
Хранятся сообщения в таком виде:
{
"time": "13:47:49",
"user": "qwe",
"message": "qwe"
}
Запись в файл
$user = $_SESSION['user'];
$message = $_POST['message'];
$time = date('H:i:s');
$file = "../data/messages.json";
$json_content = json_decode(file_get_contents($file), true);
$content = array();
if(is_array($json_content)) {
$content = $json_content;
}
$content = array("time" => $time, "user" => $user, "message" => $message);
file_put_contents($file, json_encode($content, JSON_PRETTY_PRINT),FILE_APPEND);
Подскажите пожалуйста, как правильно с помощью "time" определять и выводить нужные сообщения?
Можно попробовать сделать вот такой фильтр:
let arr = [{
"time": "17:00:49",
"user": "qwe",
"message": "qwe"},
{
"time": "17:00:49",
"user": "qwe1",
"message": "qwe1"},
{
"time": "18:00:49",
"user": "qwe2",
"message": "qwe2"},
{
"time": "18:00:49",
"user": "qwe3",
"message": "qwe3"},
{
"time": "18:00:49",
"user": "qwe4",
"message": "qwe5"}
]
let current_date = new Date().toDateString();
arr = arr.filter((el, index, array)=>{
if ((new Date() - new Date(current_date + ' ' +el.time)) < 3600*1000)
return true;
else
return false;
});
console.log(arr.length);
https://jsfiddle.net/opr70cp2/1/
Виртуальный выделенный сервер (VDS) становится отличным выбором
Тело сообщения должно содержать не менее 30 символов
Когда я убираю dataType: 'json', то success: работает, а иначе нетТак как $("#log-form")
Как на PHP сделать замену текста **bold** на <b>bold</b>, __underline__ на <u>underline</u> и --str-- на <strike>str</strike>