2011-04-23 55 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" 
});