Сделайте обновление timeago живым

Я использую плагин timeago, и мне нужно, чтобы он обновлялся автоматически, чтобы при обновлении времени на странице он обновлялся.

Вот стандартный JQuery, который мы просим разместить на наших страницах:

jQuery(document).ready(function() {
    jQuery("abbr.timeago").timeago();
});

Моя текущая проблема заключается в том, что, когда я передаю новое время из файла PHP с помощью Ajax, он не использует плагин timeago (он остается в качестве даты, 2013-10-28, скорее, чем 1 second ago, так далее).

Вот тот Аякс, который у меня есть сейчас:

<script src="assets/js/jquery.js"></script>
<script src="assets/js/timeago.js"></script>
<script type="text/javascript">

$(document).ready(function() {
    $(document).on("submit", "form", function(event) {
        event.preventDefault();
        $.ajax({
            url: 'post.php',
            type: 'POST',
            dataType: 'json',
            data: $(this).serialize(),
            success: function(data) {
                $(".container").html(data.message);
            }
        });
    });
});

$(document).ready(function() {
    $("abbr.timeago").timeago();
});

</script>

post.php файл, вызываемый Ajax:

<?php

    $code = '<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>';

    $array = array('message' => $code);

    echo $array;

?>

Когда вызывается функция Ajax, она возвращает $code HTML, но он печатает July 17, 2008 на странице, а не 5 years ago,

1 ответ

Решение

Вам нужно указать некоторое время загрузки либо в вашем классе (loaded или же modified, возможно) или дата / время в title атрибут элемента. Проверьте свой HTML

Например, это:

<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>

станет таким:

<abbr class="timeago" title="2008-07-17T09:24:17Z">about 5 years ago</abbr>
Другие вопросы по тегам