2013-05-08 5 views
0

У меня есть сценарий, который позволяет отображать последний твит.jquery last tweet time

Успех отображения текста твита, URL-адреса, имени пользователя и времени твита.

Тем не менее, я хочу преобразовать время твита времени назад.

Вот мой сценарий:

function parseDate(str) { 
    var v=str.split(' '); 
    return new Date(Date.parse(v[1]+" "+v[2]+", "+v[5]+" "+v[3]+" UTC")); 
} 

function loadLatestTweet(){ 
var _url = "https://api.twitter.com/1/statuses/user_timeline/"+tweeteraccount+".json?callback=?&count=1"; 
$.getJSON(_url,function(data){ 
    var tweet = data[0].text; 
      var created = parseDate(data[0].created_at); 
      var createdDate = created.getDate()+'/'+(created.getMonth()+1)+'/'+created.getFullYear()+', '+created.getHours()+':'+created.getMinutes(); 
      tweet = tweet.parseURL().parseUsername().parseHashtag(); 
    tweet += '<br><div id="twitter-date">'+createdDate+'</div>' 
    $("#twitter").html(tweet); 
    }); 
} 

Я нашел скрипт, который позволяет конвертировать время во время назад, но я не знаю, как добавить его в мой сценарий. Как интегрировать скрипт RELATIVE_TIME в мой parseDate сценарий

Вот сценарий для времени назад преобразований:

function relative_time(time_value) { 
    var values =time_value.split(" "); 
    time_value =values[1] + " " + values[2]+ ", " + values[5] +" "+ values[3]; 
    var parsed_date = Date.parse(time_value); 
    var relative_to = (arguments.length> 1)? arguments[1] :newDate(); 
    var delta =parseInt((relative_to.getTime()- parsed_date) /1000); 
    delta = delta + (relative_to.getTimezoneOffset()* 60); 
    var r = ''; 
    if (delta <60) { 
     r = 'aminute ago'; 
    } else if(delta < 120) { 
     r = 'couple of minutes ago'; 
    } else if(delta < (45*60)) { 
     r = (parseInt(delta/60)).toString()+ ' minutes ago'; 
    } else if(delta < (90*60)) { 
     r = 'an hourago'; 
    } else if(delta < (24*60*60)) { 
     r = ''+ (parseInt(delta/3600)).toString() +' hoursago'; 
    } else if(delta < (48*60*60)) { 
     r = '1day ago'; 
    } else { 
     r = (parseInt(delta/86400)).toString() +' days ago'; 
    } 
    return r; 
} 

Извините за мой английский, я французский

+0

check http://timeago.yarp.com/ – RafH

+0

Благодарим вас за ответ, но я не хочу выделенного сценария только для того, чтобы конвертировать время назад. Просто условие if достаточно для меня. – freaky

ответ

0

Вот что я использую для чириканья времени

// Convert the tweet creation date/time to Twitter format 
// This eliminates annoying server vs. browser time zone differences 
function twitter_time($time) { 
    $delta = time() - strtotime($time); 
    if ($delta < 60) { 
     return 'less than a minute ago'; 
    } else if ($delta < 120) { 
     return 'about a minute ago'; 
    } else if ($delta < (45 * 60)) { 
     return floor($delta/60) . ' minutes ago'; 
    } else if ($delta < (90 * 60)) { 
     return 'about an hour ago.'; 
    } else if ($delta < (24 * 60 * 60)) { 
     return floor($delta/3600) . ' hours ago'; 
    } else if ($delta < (48 * 60 * 60)) { 
     return '1 day ago'; 
    } else { 
     return floor($delta/86400) . ' days ago'; 
    } 
} 
Смежные вопросы