2013-04-11 69 views
0

目前即时通讯使用jQuery向下计数器插件(This Plugin)通过Ajax调用来生成计数器。
现在它的工作正常,没有问题的单个调用,但是当我试图生成一个多重计数器整个循环通过Json数组它不起作用。
JS循环通过JSON数组生成多少倒数计时器?

$(document).ready(function(){ 
        $.ajax({ 
         url: 'time.php', 
         async: false, 
         dataType: 'json', 
         success: function(data) { 
          var response = data ; 
          $.each(response, function(i, item) { 
           var time = new Date(item.time) ; 
           $('.timer').append('<li id='+ i +'></li>'); 
           $('#'+i).countdown({ 
           until: time, 
           compact: true, 
           format: 'HMS' 
          }); 
          }); 
         }, 
         error: function(http, message, exc) { 
          time = new Date(); 
        } 
       } 
      ); 


      }) 

PHP

<?php 
    $now = time() + 9999; 
    $now1 = time()+ 5000; 
    $data = array($now,$now1); 
    $json = array(); 
    foreach ($data as $value){ 
     $json[] = array(
      'time' => $value 
    ); 
    } 
    echo json_encode($json); 
?> 

这是JSON输出

[{"time":1365712506},{"time":1365707507}] 

当我试图表明了循环的结果,而不设置正常工作的时间和显示正确的结果。
但设置时间和设置倒计时计时器其节目00代替后的反抽

00:00:00 
    00:00:00 
+0

哪个倒计时插件? – mplungjan 2013-04-11 17:56:08

+0

@mplungjan我编辑的问题和链接添加..Thx – FouaD 2013-04-11 17:58:36

+0

我猜测日期不会在将来 – mplungjan 2013-04-11 18:07:07

回答

0

您需要使用1000

var time = new Date(item.time*1000); 

乘以日期我也改变了类ID和添加了一封信给LIS的IDS非HTML5浏览器

DEMO

$(function(){ 
    var response = [{"time":1365712506},{"time":1365707507}]; 
    $.each(response, function(i, item) { 
    var time = new Date(item.time*1000) ; 
    $('#timer').append('<li id="t'+ i +'"></li>'); 
    $('#t'+i).countdown({ 
     until: time, 
     compact: true, 
     format: 'HMS' 
    }); 
    }); 
}); 
+0

我忘了打印通过php的时间格式我打印它为int – FouaD 2013-04-11 18:43:02

0

你需要检查你的日期,我不认为他们正在进行中。

console.log(time); 

Fiddle

+0

这正是我的意见,布莱斯! – mplungjan 2013-04-11 18:12:08

+0

@mplungjan当你评论时,我一定在做这个例子。对于那个很抱歉。 – Bryce 2013-04-11 18:14:50