我正在尝试构建一个显示用户tweet的页面,但是在每条推文之间,我想要可视化表示用户在这段时间内可能输入的内容的空间。
我一直在用我想要达到的目标的逻辑进行一圈又一圈的循环,但却一事无成。我的当前代码在这里:http://jsfiddle.net/k5234/,但这不包括我试图实现的循环,代码将项‘field _at字段(当前tweet的日期/时间)从下一个item.created_at字段中删除。
如果有人能为我指出正确的方向,让我的代码能够工作,我将非常感激。我的工作基础是3x s == 1秒。
要澄清的是,如果用户在1.05pm发推特,然后在1.07pm再发推特,就会有120秒的空空间。120秒*3个字符=两个tweet之间的360个空格。希望这一切都有意义。
谢谢你,大卫
添加信息:想象有人不断推特。这一页将充满文字。然而,在现实中,有些人只是偶尔发推特。推文后的空间(直到下一条)将是一个大小,代表了他们在那个时候可以输入的内容。例如:我输入一条推特,10分钟内不要再发推特。在我的页面上可视化将是这最后一条推文,但前面的一条将出现1800个空格(10分钟*60秒*每秒3个字符= 1800个空格)。我能检索到的是在需要的时候推文的日期,但我遇到困难的是获取下一条推文的时间,以确定在以这种方式显示信息的阶段存在的差距。我实在无法更清楚地说明这个概念。
发布于 2011-04-23 22:16:52
我想你的问题很清楚。
看看这个解决方案是否有效:-
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>";
}希望这能有所帮助。
发布于 2011-04-23 22:07:33
也许是这样的:
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"
});https://stackoverflow.com/questions/5767121
复制相似问题