2011-04-23 64 views
0

我正在尝试构建一个显示用户推文的页面,但是在每条推文之间,我想要显示代表该用户可以在该时间段内键入的内容的空间。从JSON(Twitter API)中的下一个项目检索信息

我一直在围绕着我试图实现和变得无处不在的逻辑循环。我目前的代码在这里:http://jsfiddle.net/k5234/,但这不包括我试图实现的代码取代item'created_at字段(当前tweet的日期/时间)的循环,并将其从下一步 item.created_at领域。

如果任何人都可以指出我正确的方向与我如何让我的代码工作,我会非常感激。我工作的基础是3x   s == 1秒。

为了澄清,如果用户在1.05pm,然后在1.07pm再次鸣叫,则会有120秒的空闲空间,即。 120秒* 3个字符= 2条推文之间的空白空间。希望这一切都有道理。

谢谢, 大卫

ADDED信息:想象一下,有人不断地啁啾。该页面将充满文字。但实际上,有人只是经常发推文。 tweet之后的空间(直到下一个)将具有代表他们可以在那段时间输入的大小。例如。我输入一条推文,并且在10分钟内不再鸣叫。在我的网页上显示的将是最后一条推文,但之前的推文会在此后显示1800个空格(10分钟* 60秒* 3个字符每秒= 1800个空格)。我可以在需要的时候检索推文的日期,但是我遇到的问题是获取下一条推文的时间来确定以这种方式呈现信息阶段的差距。除此之外,我无法真正说明这个概念。

+0

我认为你真的需要设计一个图形(想象餐巾纸演示),显示这是如何工作的,以及你想要达到的目标。把问题卖给我们,我们可以帮你解决问题,不要只说“哇,它不起作用”......查看http://tinyurl.com/so-hints,以获得一些非常好的想法。如何提出问题“真实” – jcolebrand 2011-04-23 21:49:12

+0

我以为我问的问题很清楚。我正在寻找某人提出合理的步骤来帮助我实现我的目标,这在我的问题中显而易见,对吗? – SixtySticks 2011-04-23 21:58:34

+0

并非如此,没有。根据两个时间戳之间的差异,你想每秒插入三个“ ”?我有点失落,你希望达到什么目的。你想在页面中删除的东西吗? – jcolebrand 2011-04-23 22:00:40

回答

1

我觉得你的问题是清楚的。

看是否有此解决方案的工作: -

 function getTweets() { 
      html += "<pre>"; 
      $.each(data, function(i, item) { 
       html += item.text; // add tweet 
       var timeCreated = new Date(item.created_at); // date of tweet 
       if((i+1) in data) 
       { 
       var timeTillNextTweet = new Date(data[ i+1 ].created_at); 

       var timeDiff = timeTillNextTweet.getTime() - timeCreated.getTime(); 
       var secondsDifference = Math.floor(timeDiff/1000); 

       // use secondsDifference to generate the spaces.. 
       } 
      }); 
      html += "</pre>"; 
     } 

希望这会有所帮助。

+0

非常感谢您的帮助:) Unfortunatley这一行不起作用,即使添加了')':var timeTillNextTweet = new Date(data [i + 1] .created_at; – SixtySticks 2011-04-23 22:25:22

+0

对不起,延迟响应,但您的编辑代码工作一个治疗:)谢谢! – SixtySticks 2011-04-24 23:45:55

0

也许一些沿着这些路线:

var current; 
var previous; 
$.each(data, function(i, item) { 
    previous = current; 
    current = Date.parse(item.created_at); 
    html += "Tweet " + i +" " + (previous - current)/3000 + " spaces\n" 
});