Получение информации из следующего элемента в JSON (Twitter API) - PullRequest
0 голосов
/ 24 апреля 2011

Я пытаюсь создать страницу, которая отображает твиты пользователей, однако между каждым твитом я хочу визуализировать пространство, представляющее то, что пользователь мог набрать за этот период времени.

Я хожу по кругу с логикой того, чего я пытаюсь достичь, и ничего не получаю. Мой текущий код здесь: http://jsfiddle.net/k5234/,, но это не включает цикл, который я пытаюсь достичь, где код берет поле item'created_at (дата / время текущего твита) и убирает его из следующее поле item.created_at.

Если кто-нибудь может указать мне правильное направление работы моего кода, я был бы очень благодарен. я работаю на основании того, что 3x   s == 1 секунда.

Чтобы уточнить, если пользователь пишет в Твиттере в 13.05, а затем снова в 01.07, будет 120 секунд пустого пространства, т.е. 120 секунд * 3 символа = 360 пробелов между двумя твитами. Надеюсь, все это имеет смысл.

Спасибо, David

ДОБАВЛЕННАЯ ИНФОРМАЦИЯ: Представьте, что кто-то постоянно пишет в Twitter. Страница будет полна текста. Однако на самом деле, кто-то только часто пишет в Твиттере. Пространство после твита (до следующего) будет иметь размер, который соответствует тому, что они могли набрать за это время. Например. Я набираю твит и больше не пишу в течение 10 минут. На моей странице будет отображаться последний твит, но предыдущий будет отображаться через 1800 пробелов (10 минут * 60 секунд * 3 символа в секунду = 1800 пробелов). То, что я могу получить, - это дату твита в момент необходимости, но у меня возникают проблемы с получением времени следующего твита, чтобы определить пробел на этапе представления информации таким образом. Я не могу на самом деле проиллюстрировать концепцию более ясным, чем это.

Ответы [ 2 ]

1 голос
/ 24 апреля 2011

Я думаю, ваш вопрос ясен.

Проверьте, работает ли это решение: -

<code>       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 += "
"; }

надеюсь, это поможет.

0 голосов
/ 24 апреля 2011

Может быть, что-то вроде этого:

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"
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...