Здравствуйте.
--
Предыстория: Заметил, как в социальной сети "в контакте", происходит обновление даты и времени с момента публикации поста. Грубо говоря, листаешь ты себе ленту, страница не перезагружается, комменты пишешь, лайки ставишь, и видишь, что у каждого блока по отдельности меняется надпись:
"опубликовано только что"
"опубликовано пять минут назад"
"опубликовано вчера в 13:16"
Уж не судите строго, решил попробовать провернуть это сам, без помощи и подсказки, написал на php функцию, которая выводит то или иное сообщение, обернул страницу в Pjax, и поставил javascript функцию которая обновляла страницу, таким образом в каждом блоке динамично менялись надписи. И вроде всё здорово, НО - веселье началось когда скрипт не справлялся с отображением плитки с картинками, и всё съезжало, позже я понял, что и "лайки" и "комментарии" будет ставить невозможно!!!
Моя идея реализовать подобную идею превратилась в кошмар)))
Но я не отчаялся, и понял, что от php и Pjax нужно отказаться, и написать функцию на javascript которая по id блока, будет выводить состояние срока публикации. Так же пришло осознание, что условия смены unix даты должно опираться на функцию подсчёта времени от даты публикации.
Подобное я делал на php чтобы подсчитать дни между двумя датами, нет ни капли сомнения, что такое решение есть и на javascript, почему я решил обратится к нему? Потому что нагрузка на сервер будет меньше, учитывая, что на одной странице может оказаться более 100 записей, и каждая будет обновлять текущий срок с момента публикации. Страшно представить, какая будет нагрузка на сервер, учитывая динамику просмотра, редактирования, комментирования, обновления даты, "лайки", но всё же интересно, смогу ли я осилить такой функционал.
=======================================
Вопрос:
Есть
пример динамической даты где показано, как реализовать обновление с сегодняшней датой. Я же буду пытаться обновлять срок давности даты, беря её из базы данных в unix формате. Как извлечь дату, подсчитать количество времени (разницу), вывести контент - я знаю.
Но как это реализовать для каждого блока отдельно?