用于将Twitter created_at显示为xxxx之前的JavaScript代码

Bra*_*ady 15 javascript twitter datetime

我需要一些JS代码,它将created_at从Twitter提要中获取值并将其显示为xxxx之前.

我可以找到创建该xxxx ago位的示例,但不能找到将该created_at位转换为JS的正确格式的示例.

有没有人有一个功能可以做我想要的事情?

示例格式 Tue Apr 07 22:52:51 +0000 2009

无法使用,new Date(Date.parse("Tue Apr 07 22:52:51 +0000 2009"))因为它在IE中给出了无效的日期错误.

Onc*_*Tom 45

使用没有任何插件的moment.js这是您需要用来正确解析尴尬的Twitter日期的自定义格式:

var tweetDate = 'Mon Dec 02 23:45:49 +0000 2013';
moment(tweetDate, 'dd MMM DD HH:mm:ss ZZ YYYY', 'en');
Run Code Online (Sandbox Code Playgroud)


Bra*_*ady 28

从评论中,以及来自twitter小部件的一些代码是我提出的代码:

function parseTwitterDate(tdate) {
    var system_date = new Date(Date.parse(tdate));
    var user_date = new Date();
    if (K.ie) {
        system_date = Date.parse(tdate.replace(/( \+)/, ' UTC$1'))
    }
    var diff = Math.floor((user_date - system_date) / 1000);
    if (diff <= 1) {return "just now";}
    if (diff < 20) {return diff + " seconds ago";}
    if (diff < 40) {return "half a minute ago";}
    if (diff < 60) {return "less than a minute ago";}
    if (diff <= 90) {return "one minute ago";}
    if (diff <= 3540) {return Math.round(diff / 60) + " minutes ago";}
    if (diff <= 5400) {return "1 hour ago";}
    if (diff <= 86400) {return Math.round(diff / 3600) + " hours ago";}
    if (diff <= 129600) {return "1 day ago";}
    if (diff < 604800) {return Math.round(diff / 86400) + " days ago";}
    if (diff <= 777600) {return "1 week ago";}
    return "on " + system_date;
}

// from http://widgets.twimg.com/j/1/widget.js
var K = function () {
    var a = navigator.userAgent;
    return {
        ie: a.match(/MSIE\s([^;]*)/)
    }
}();
Run Code Online (Sandbox Code Playgroud)


小智 5

这是Brady解决方案的法语翻译:

function parseTwitterDate(tdate) {
    var system_date = new Date(Date.parse(tdate));
    var user_date = new Date();
    if (K.ie) {
        system_date = Date.parse(tdate.replace(/( \+)/, ' UTC$1'))
    }
    var diff = Math.floor((user_date - system_date) / 1000);
    if (diff <= 1) {return "à l'instant";}
    if (diff < 20) {return "il y a " + diff + " secondes";}
    if (diff < 40) {return "il y a une minute";}
    if (diff < 60) {return "il y a moins d'une minute";}
    if (diff <= 90) {return "il y a une minute";}
    if (diff <= 3540) {return "il y a " + Math.round(diff / 60) + " minutes";}
    if (diff <= 5400) {return "il y a 1 heure";}
    if (diff <= 86400) {return "il y a " + Math.round(diff / 3600) + " heures";}
    if (diff <= 129600) {return "il y a 1 jour";}
    if (diff < 604800) {return "il y a " + Math.round(diff / 86400) + " jours";}
    if (diff <= 777600) {return "il y a 1 semaine";}
    return system_date;
}

// from http://widgets.twimg.com/j/1/widget.js
var K = function () {
    var a = navigator.userAgent;
    return {
        ie: a.match(/MSIE\s([^;]*)/)
    }
}();
Run Code Online (Sandbox Code Playgroud)