La documentación para este módulo puede ser creada en Módulo:Time Ago/doc

local p = {} local lang = mw.language.getContentLanguage() local lib = require('Módulo:Destacado') local search = lib.inArray local ne = lib.isNotEmpty local i18n = require('Módulo:I18n').loadMessages('Time Ago')  local units = { 	{ 		terms = {'year','y'}, 		higher = {''}, 		insec = 31557600 	}, 	{ 		terms = {'month','mth'}, 		higher = {'year','y'}, 		insec = 2629800 	}, 	{ 		terms = {'week','w'}, 		higher = {'year','y','month','mth'}, 		insec = 604800 	}, 	{ 		terms = {'day','d'}, 		higher = {'year','y','month','mth','week','w'}, 		insec = 86400 	}, 	{ 		terms = {'hour','h'}, 		higher = {'year','y','month','mth','week','w','day','d'}, 		insec = 3600 	}, 	{ 		terms = {'minute','min'}, 		higher = {'year','y','month','mth','week','w','day','d','hour','h'}, 		insec = 60 	}, 	{ 		terms = {'second','s'}, 		higher = {'year','y','month','mth','week','w','day','d','hour','h','minute','min'}, 		insec = 1 	} }  function p.main( frame ) 	local args = require( 'Módulo:Argumentos' ).getArgs( frame, { 		wrappers = {'Plantilla:Tiempo'} 	})  	return p._main(args) end  function p._main(args) 	-- Check that a timestamp was entered, return blank if it wasn't. 	if not args[1] then return '' end 	 	-- Check that the entered timestamp is valid. If it isn't, then give an error message. 	local success, inputTime = pcall(lang.formatDate, lang, 'xnU', args[1]) 	assert(success, i18n:msg('parse-error')) 	 	--Output formats 	if args.include then 		return p.include(args,inputTime) 	else 		return p.last(args,inputTime) 	end end  function p.include(args,inputTime) 	local output = '' 	local include = lib.split(args.include,',') 	if (type(include) == 'string') then include = {include} end 	local hidelabel = tostring(args['hidelabel']) == '1' 	local hidefixes = tostring(args['hidefixes']) == '1' 	 	-- Store the difference between the current time and the inputted time, as well as its absolute value. 	local timeDiff = lang:formatDate('xnU') - inputTime 	local absTimeDiff = math.abs(timeDiff) 	 	local ValueTable = {'','','','','','',''} 	local trueVal = {} 	for k,v in ipairs(units) do 		local Value = 0 		local i,IsIn = false,false 		for K,V in ipairs(include) do 			if (absTimeDiff >= v.insec and (search(v.terms,V))) then i = true end 		end 		while i == true do 			Value=Value+1 			absTimeDiff = absTimeDiff - v.insec 			if absTimeDiff < v.insec then i = false end 		end 		if Value > 0 then 			if hidelabel then 				ValueTable[k] = tostring(Value) 			else 				ValueTable[k] = i18n:msg(v.terms[1], Value, (Value > 1 and 2 or 1)) 			end 		end 	end 	for k,v in ipairs(ValueTable) do 		if ne(v) then 			trueVal[#trueVal+1] = v 		end 	end 	if (#trueVal == 0) then 		local start,i = false,true 		for k,v in ipairs(units) do 			if start then 				if (absTimeDiff >= v.insec) then 					local Value = 0 					while i == true do 						Value=Value+1 						absTimeDiff = absTimeDiff - v.insec 						if absTimeDiff < v.insec then i = false end 					end 					if hidelabel then 						output = tostring(Value) 					else 						output = i18n:msg(v.terms[1], Value, (Value > 1 and 2 or 1)) 					end 					if (timeDiff < 0 and (not hidefixes) and (not hidelabel) and ne(output)) then output = i18n:msg('future' .. (ne(args.lowercase) and '-low' or ''), output) end 					if (timeDiff > 0 and (not hidefixes) and (not hidelabel) and ne(output)) then output = i18n:msg('past', output) end 					return output 				end 			elseif search(v.terms,include[#include]) then 				start = true 			end 		end 	end 	output = table.concat(trueVal,', ') 	if (timeDiff < 0 and (not hidefixes) and (not hidelabel) and ne(output)) then output = i18n:msg('future' .. (ne(args.lowercase) and '-low' or ''), output)  end 	if (timeDiff > 0 and (not hidefixes) and (not hidelabel) and ne(output)) then output = i18n:msg('past', output) end 	return output end  function p.last(args,inputTime) 	local output = '' 	local last = args.last or 'sweet potato' 	local hidelabel = tostring(args['hidelabel']) == '1' 	local hidefixes = tostring(args['hidefixes']) == '1' 	 	-- Store the difference between the current time and the inputted time, as well as its absolute value. 	local timeDiff = lang:formatDate('xnU') - inputTime 	local absTimeDiff = math.abs(timeDiff) 	 	local ValueTable = {'','','','','','',''} 	local trueVal = {} 	for k,v in ipairs(units) do 		local Value = 0 		local i = false 		if (absTimeDiff >= v.insec and (not search(v.higher,last))) then i = true end 		for iter=1,k do 			if (lib.isEmpty(ValueTable[iter]) and absTimeDiff >= v.insec) then 				i = true 			else  				i = false 			end 		end 		while i == true do 			Value=Value+1 			absTimeDiff = absTimeDiff - v.insec 			if absTimeDiff < v.insec then i = false end 		end 		if Value > 0 then 			if hidelabel then 				ValueTable[k] = tostring(Value) 			else 				ValueTable[k] = i18n:msg(v.terms[1], Value, (Value > 1 and 2 or 1)) 			end 		end 	end 	for k,v in ipairs(ValueTable) do 		if (((not search(units[k].higher,last)) or search(units[k].terms,last)) and ne(v)) then 			trueVal[#trueVal+1] = v 		elseif ((#trueVal == 0) and ne(v)) then 			trueVal[1] = v 		end 	end 	output = table.concat(trueVal,', ') 	if (timeDiff < 0 and (not hidefixes) and (not hidelabel) and ne(output)) then output = i18n:msg('future' .. (ne(args.lowercase) and '-low' or ''), output)  end 	if (timeDiff > 0 and (not hidefixes) and (not hidelabel) and ne(output)) then output = i18n:msg('past', output) end 	return output end  return p