0

我有一个脚本可以显示最后一条推文。

我成功显示了推文文本、网址、用户名和推文时间。

但是,我想及时转换推文。

这是我的脚本:

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

对不起我的英语,我是法国人

4

1 回答 1

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';
    }
}
于 2013-05-09T05:48:44.100 回答