2013-05-08 58 views
0

我有一个脚本,允许显示最后的鸣叫。jQuery的最后鸣叫时间前

我的成功,显示推文文字,网址,用户名和鸣叫的时间。

不过,我想在不久之前改变推文时间。

这里我的脚本:

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

检查http://timeago.yarp.com/ – RafH 2013-05-08 20:00:16

+0

谢谢你的答案,但我不想一个专门的脚本只是为了转换时间前的时间。只要条件对我来说就够了。 – freaky 2013-05-08 20:02:46

回答

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'; 
    } 
}