让timeago更新直播

时间:2013-10-28 23:36:52

标签: ajax jquery jquery-plugins timeago

我正在使用timeago plugin,我需要自动更新以便如果新的时间传递到页面,则会更新它们

这是我们要求在页面上放置的默认JQuery:

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

我目前的问题是,当我使用Ajax从PHP文件传递新时间时,它不会使用timeago插件(它保留为日期2013-10-28,而不是1 second ago等等。)

这是我现在拥有的Ajax:

<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>

Ajax调用的post.php文件:

<?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 个答案:

答案 0 :(得分:1)

您需要在类(loadedmodified中)指定一些加载时间,或者在元素的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>