0

目前我正在使用 jquery 倒数计时器插件(This Plugin)通过 Ajax 调用生成计数器。
现在它工作正常,一次调用没有问题,但是当我尝试生成一个通过 Json 数组循环的多个计数器时,它不起作用。
JS

$(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
4

2 回答 2

0

您需要将日期乘以 1000

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

我还将类更改为 ID,并在非 html5 浏览器的 LI 的 iD 中添加了一个字母

演示

$(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'
    });  
  });
});
于 2013-04-11T18:09:56.930 回答
0

你需要检查你的日期,我不相信他们在未来。

console.log(time);

小提琴

于 2013-04-11T18:10:52.383 回答