如何使帖子日期同步

时间:2012-02-18 13:20:27

标签: php javascript ajax

假设我在一个页面中有15个或更多帖子。 while循环中的代码如下所示

 <div class="post" id="<?php echo $postID?>">

    <h1><?php echo $title;?></h1>

    <div class="postmeta"> 
posted by <?php echo $author;?> , <?php echo timeAgo($postDate);?></div>
    </div>

这只是一个例子!所以timeAgo()函数将unix时间戳1329569847转换为人类时间11分钟前。如何让它与ajax实时同步,我的意思是在5分钟之后改为16分钟前,4分钟后改为20分钟前,这将影响所有帖子。


所以我设法通过 chenio TheShellfishMeme (啤酒)使其成功。

这就是做魔术的代码

<span class="timestamp" id="5" postdate="1329576793"></span><br/>

<span class="timestamp" id="8" postdate="1329576795"></span><br/>


<script>

updateTimestamps();
setInterval(updateTimestamps, 60000);

function updateTimestamps(){
    $(".timestamp").each(function(i){

        var timestamp = $(this).attr("postdate");
var postID = $(this).attr("id");

$.ajax({
type: "POST",
url: "myURL",
data: "postID="+ postID +'&timestamp=' + timestamp, 
cache: false,
success: function(html){

$(".timestamp#"+postID).html(html);

}
});




    });
}
</script>

2 个答案:

答案 0 :(得分:2)

我使用像http://jsfiddle.net/rXFnn/这样的数据属性来将unix时间戳添加到div中的一个span,这意味着包含'time ago'字符串。 然后将timeAgo逻辑移植到javascript并使用setInterval每分钟更新一次。

不需要为简单的事情做AJAX,但请注意下面的示例使用jQuery

为了完整性,这里是代码:

<div class="postmeta"> 
    posted by Foo , <span class="timestamp" data-timestamp="1329573254200"></span> ago
</div>​

<script>
updateTimestamps();
setInterval(updateTimestamps, 60000);

function updateTimestamps(){
    $(".timestamp").each(function(i){
        var timestamp = $(this).data('timestamp');

        // Put your time ago logic here
        var timeAgo = timestamp;
        $(this).text(timeAgo);
    });
}
</script>

答案 1 :(得分:1)

使用jquery是一个很好的形式。 这是一个例子:

      <script src=jquery.js"></script>
         <script>

     <script>

    var auto_refresh = setInterval(
    function()
    {
// here put a url to a script to calculate time posted ago
    $('#someid').load('someurl');
    }, 60000);
    </script>
   <div class="post" id="<?php echo $postID?>">

    <h1><?php echo $title;?></h1>

    <div class="postmeta" id='someid'> 
posted by <?php echo $author;?> , <?php echo timeAgo($postDate);?></div>
    </div>

其他形式是:

.....  continue
$.ajax({
 // here put a url to a script to calculate time posted ago 
  url: 'url',
  success: function(data) {
    $('#someid').html(data);

  }
}); 
......

http://api.jquery.com/jQuery.ajaxhttp://designgala.com/how-to-refresh-div-using-jquery/

我希望这可以帮到你