从JSON中的下一项检索信息(Twitter API)

时间:2011-04-23 21:39:47

标签: javascript jquery json twitter

我正在尝试构建一个显示用户推文的页面,但是在每条推文之间我想要显示代表用户在该时间段内可以输入的内容的空间。

我一直围绕着我想要实现的目标和无处可去的逻辑。我当前的代码在这里:http://jsfiddle.net/k5234/,但这不包括我试图实现的循环,其中代码采用item'created_at字段(当前推文的日期/时间)并将其从下一步 item.created_at字段。

如果有人能指出我正确的方向,我将如何使我的代码工作,我将非常感激。我的工作基础是3x   s == 1秒。

澄清一下,如果用户在下午1点05分发布推文,然后再在下午1点107发推文,则会有120秒的空白空间即。 120秒* 3个字符= 2个推文之间的360个空格。希望这一切都有道理。

谢谢, 大卫

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

2 个答案:

答案 0 :(得分: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>";
        }

希望这会有所帮助。

答案 1 :(得分: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"
});