2014-10-14 2 views
1

Я использую timeago.js, чтобы показать дату. Тем не менее, я хочу показать функцию «часов назад» плагина, если конкретная дата меньше 2 дней. Если дата больше двух дней, она покажет обычный «3 дня назад».Как сделать timeago.js показать только часы назад

Спасибо за помощь заранее.

+0

Просто обратите внимание - этот плагин есть ошибка для будущего времени/даты. (возвращает время AGO для будущего) –

ответ

1

Видимо, мне нужно изменить плагин. Необходимо установить «часы» менее 48 часов.

var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) || 
hours < 48 && substitute($l.hours, Math.round(hours)) || 
+0

В плагине нет никаких настроек, для которых не предусмотрено никаких объектов для управления - так что это, вероятно, лучшее плагин-подобное решение :) –

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/

Смежные вопросы