1

我正在使用 timeago.js 来显示日期。但是,如果特定日期少于 2 天,我想显示插件的“几小时前”功能。如果日期超过 2 天,它将显示通常的“3 天前”。

我在这里先向您的帮助表示感谢。

4

3 回答 3

1

显然,我必须修改插件。必须将“小时”设置为小于 48 小时。

 var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) ||
 hours < 48 && substitute($l.hours, Math.round(hours)) ||
于 2014-10-14T07:26:33.820 回答
0

您当然可以像以前一样修改插件,或者您可以再次运行日期并检查它们是否超过两天 - 如果是 - 只需将字符串重写为小时,如下所示:

$(function(){
    var oneHour = 1*60*60*1000; // one hour in miliseconds
    var twoDays = 2*24*oneHour; // two days in miliseconds

    $('.timeAgoSelector').each(function(){
        $t = $(this);
        var agoDate = new Date( $t.attr('title') ).getTime()
        var currDate = new Date().getTime();
        var timeAgo = currDate - agoDate;
        if( (timeAgo < twoDays) && (timeAgo >= oneHour) ){
            var hours = ((timeAgo/1000)/60)/60;
            hours = Math.floor(hours);
            if( hours < 2 ) $t.html( 'an hour ago' );
                else $t.html( hours + ' hours ago' );
        } //else => do nothing (keep original content)
    });

});

=> http://jsfiddle.net/chgvcudL/

于 2014-10-14T07:59:34.810 回答
0

我认为timeago.js可以帮助你,我支持这个小库。

您可以根据需要自定义语言环境功能。

const yourLocale = (number, index, totalSec) => {
   // format totalSec into hours.
   const hours = getHours(totalSec);
   return hours +' hours ago';
};

然后register它。

timeago.register('yourLocale', yourLocale);

他们format使用它。

timeago.format(time, 'yourLocale');

完毕!

于 2019-01-04T07:05:42.590 回答