· 7 years ago · May 28, 2018, 05:26 PM
1/*
2 * JavaScript Pretty Date
3 * Copyright (c) 2008 John Resig (jquery.com)
4 * Licensed under the MIT license.
5 */
6
7// Takes an ISO time and returns a string representing how
8// long ago the date represents.
9TimeInWordsHelper = {
10 distanceInWords: function(time) {
11 var date = time,
12 diff = (((new Date()).getTime() - date.getTime()) / 1000),
13 day_diff = Math.floor(diff / 86400);
14
15 if ( isNaN(day_diff) || day_diff < 0)
16 return;
17
18 return day_diff == 0 && (
19 diff < 60 && Math.floor( diff ) + " segundos" ||
20 diff < 120 && "1 minuto" ||
21 diff < 3600 && Math.floor( diff / 60 ) + " minutos" ||
22 diff < 7200 && "1 hora" ||
23 diff < 86400 && Math.floor( diff / 3600 ) + " horas") ||
24 day_diff == 1 && "1 dia" ||
25 day_diff < 7 && day_diff + " dias" ||
26 day_diff < 14 && "1 semana" ||
27 day_diff < 31 && Math.ceil( day_diff / 7 ) + " semanas" ||
28 day_diff < 355 && Math.ceil( day_diff / 31 ) + " meses" ||
29 day_diff > 356 && "Muito tempo";
30 },
31 convertBySelector: function(el, selector) {
32 var now = new Date()
33 // implementei um class selector simples para evitar bloat do jquery (codigo desnecessario) no widgets
34 var els = document.getElementsByTagName(el);
35 for (var i=0; i < els.length; i++) {
36 if (els[i].getAttribute('class') == selector) {
37 var oldInner = els[i].innerHTML;
38 var title = els[i].getAttribute('title');
39 if (title.length > 10) {
40 var date = new Date(title);
41 } else {
42 var date = new Date(title*1000);
43 els[i].setAttribute('title', date);
44 }
45 els[i].innerHTML = TimeInWordsHelper.distanceInWords(date) + ' atrás'
46 }
47 }
48 }
49};
50try {
51 TimeInWordsHelper.convertBySelector('span', 'gmttime');
52} catch(e){}
53setInterval(function() {
54 TimeInWordsHelper.convertBySelector('span', 'gmttime');
55}, 1000);