多次调用javascript函数

时间:2014-10-11 02:08:48

标签: javascript jquery html

所以,我有一些麻烦找到解决这个问题的方法。我知道这看起来很傻,但我真的坚持这个。

我有类似的东西:

<div class="tdate">
    Sat Oct 11 01:11:01 +0000 2014
</div>
<div class="tdate">
    Sat Oct 11 01:10:44 +0000 2014
</div>
<div class="tdate">
    Sat Oct 11 00:51:03 +0000 2014
</div>

这个javascript函数:

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;
}
var K = function () {
    var a = navigator.userAgent;
    return {
        ie: a.match(/MSIE\s([^;]*)/)
    }
}();

我尝试做的是将所有.tdate更改为新格式(这是我的javascript所做的)。但我不知道如何调用此函数来更改所有不同的.tdate。 如果我打电话给parseTwitterDate(&#34; Sat Oct 11 00:51:03 +0000 2014&#34;),它会起作用,但只有一次。

基本上,我希望以这种格式在我的页面上看到所有日期:&#34; Sat Oct 11 01:11:01 +0000 2014&#34;改为:&#34; 47分钟前&#34; (或输出的任何东西)。但我不知道如何调用函数parseTwitterDate(tdate)。

很抱歉我的解释非常糟糕。如果我不能让自己足够清楚,请告诉我。

非常感谢能帮助我的人。

非常感谢! :)

3 个答案:

答案 0 :(得分:1)

由于您使用的是JQuery(或者至少使用了JQuery标记),您可以执行此操作

$(function () {
    $('.tdate').each(function (index, value) {
        $(value).html(parseTwitterDate(($(value).html())))
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="tdate">
  Sat Oct 11 01:11:01 +0000 2014
</div>
<div class="tdate">
  Sat Oct 11 01:10:44 +0000 2014
</div>
<div class="tdate">
  Sat Oct 11 00:51:03 +0000 2014
</div>

答案 1 :(得分:0)

Wadup!将其添加到您的javascript文件中。

...

[].forEach.call(document.getElementsByClassName("tdate"), function(tdate) {
  tdate.innerHTML = parseTwitterDate(tdate.innerHTML);
});

答案 2 :(得分:0)

$('.tdate').each(function() {
    $(this).text(parseTwitterDate($(this).text()));
});