fbpx
วิกิพีเดีย

มอดูล:TimeAgo/sandbox

คู่มือการใช้งานมอดูล[สร้าง]
-- Replacement for [[Template:Time ago]] local getArgs = require('Module:Arguments').getArgs  local p = {}  function p.main( frame )  local args = getArgs( frame, {  valueFunc = function( k, v )  if v then  v = v:match( '^%s*(.-)%s*$' ) -- Trim whitespace.  if k == 'ago' or v ~= '' then  return v  end  end  return nil  end  })  return p._main( args ) end  function p._main( args )  -- Initialize variables  local lang = mw.language.getContentLanguage()  local ago  local auto_magnitude_num  local min_magnitude_num  local result  local result_unit  local magnitude = args.magnitude  local min_magnitude = args.min_magnitude  local purge = args.purge   -- Generate the "ago" string. If ago is the blank string, do nothing - this allows overriding of args.ago  -- in cases where the module is used to generate something like "where he has worked for the past 20 years."  ago = args.ago  if ago and ago ~= '' then  ago = ' ' .. ago  elseif not ago then  ago = ' ago'  end   -- Add a purge link if something (usually "yes") is entered into the purge parameter  if purge then  purge = ' <span class="plainlinks">([' .. mw.title.getCurrentTitle():fullUrl('action=purge') .. ' purge])</span>'  else  purge = ''  end   -- Check that the entered timestamp is valid. If it isn't, then give an error message.  local noError, inputTime = pcall( lang.formatDate, lang, 'U', args[1] )  if not noError then  return '<strong class="error">Error: first parameter cannot be parsed as a date or time.</strong>'  end   -- Store the difference between the current time and the inputted time, as well as its absolute value.  local timeDiff = lang:formatDate( 'U' ) - inputTime  local absTimeDiff = math.abs( timeDiff )   if magnitude then  auto_magnitude_num = 0  min_magnitude_num = timeText[magnitude]  else  -- Calculate the appropriate unit of time if it was not specified as an argument.  local autoMagnitudeData = {  {denom = 63115200, amn = 31557600},  {denom = 5356800, amn = 2678400},  {denom = 172800, amn = 86400},  {denom = 7200, amn = 3600},  {denom = 120, amn = 60}  }  for i, t in ipairs(autoMagnitudeData) do  if absTimeDiff / t.denom >= 1 then  auto_magnitude_num = t.amn  break  end  end  auto_magnitude_num = auto_magnitude_num or 1  if min_magnitude then  min_magnitude_num = timeText[min_magnitude]  else  min_magnitude_num = -1  end  end   if not min_magnitude_num then  -- Default to seconds if an invalid magnitude is entered.  min_magnitude_num = 1  end   local magnitude_num = math.max( min_magnitude_num, auto_magnitude_num )  local result_num = math.floor ( absTimeDiff / magnitude_num )   if timeDiff >= 0 then -- Past  if result_num == 1 then  result_unit = timeUnits[ magnitude_num ][1]  else  result_unit = timeUnits[ magnitude_num ][2]  end  result = result_num .. ' ' .. result_unit .. ago -- Spaces for "ago" are added earlier.  else -- Future  if result_num == 1 then  result_unit = timeUnits[ magnitude_num ][3]  else  result_unit = timeUnits[ magnitude_num ][4]  end  result = result_num .. ' ' .. result_unit .. ' time'  end   return result .. purge end  -- Table to convert entered text values to numeric values. timeText = {  ['seconds'] = 1,  ['minutes'] = 60,  ['hours'] = 3600,  ['days'] = 86400,  ['weeks'] = 604800,  ['months'] = 2678400,  ['years'] = 31557600 }  -- Table containing tables of possible units to use in output. timeUnits = {  [1] = { 'second', 'seconds', "second's", "seconds'" },  [60] = { 'minute', 'minutes', "minutes'", "minutes'" },  [3600] = { 'hour', 'hours', "hour's", "hours'" },  [86400] = { 'day', 'days', "day's", "days'" },  [604800] = { 'week', 'weeks', "week's", "weeks'" },  [2678400] = { 'month', 'months', "month's", "months'" },  [31557600] = { 'year', 'years', "year's", "years'" } }  return p 

มอด, timeago, sandbox, อหน, ากระบะทรายมอด, ลของ, มอด, timeago, ความแตกต, าง, also, companion, subpage, ดทดสอบ, อการใช, งานมอด, สร, าง, ณอาจจะต, องการสร, างค, อการใช, งานของมอด, ลน, เข, ยนสามารถทำการทดลองได, กระบะทราย, แก, ความแตกต, าง, และช, ดทดสอบ, แก, ของมอด. nikhuxhnakrabathraymxdulkhxng mxdul TimeAgo dukhwamaetktang See also the companion subpage for chudthdsxb run khumuxkarichnganmxdul srang khunxaccatxngkarsrangkhumuxkarichngankhxngmxdulniphuekhiynsamarththakarthdlxngidthikrabathray aek dukhwamaetktang aelachudthdsxb aek khxngmxdulnioprdephimhmwdhmuipthihnayxy doc hnayxykhxngmxdulni Replacement for Template Time ago local getArgs require Module Arguments getArgs local p function p main frame local args getArgs frame valueFunc function k v if v then v v match s s Trim whitespace if k ago or v then return v end end return nil end return p main args end function p main args Initialize variables local lang mw language getContentLanguage local ago local auto magnitude num local min magnitude num local result local result unit local magnitude args magnitude local min magnitude args min magnitude local purge args purge Generate the ago string If ago is the blank string do nothing this allows overriding of args ago in cases where the module is used to generate something like where he has worked for the past 20 years ago args ago if ago and ago then ago ago elseif not ago then ago ago end Add a purge link if something usually yes is entered into the purge parameter if purge then purge lt span class plainlinks gt mw title getCurrentTitle fullUrl action purge purge lt span gt else purge end Check that the entered timestamp is valid If it isn t then give an error message local noError inputTime pcall lang formatDate lang U args 1 if not noError then return lt strong class error gt Error first parameter cannot be parsed as a date or time lt strong gt end Store the difference between the current time and the inputted time as well as its absolute value local timeDiff lang formatDate U inputTime local absTimeDiff math abs timeDiff if magnitude then auto magnitude num 0 min magnitude num timeText magnitude else Calculate the appropriate unit of time if it was not specified as an argument local autoMagnitudeData denom 63115200 amn 31557600 denom 5356800 amn 2678400 denom 172800 amn 86400 denom 7200 amn 3600 denom 120 amn 60 for i t in ipairs autoMagnitudeData do if absTimeDiff t denom gt 1 then auto magnitude num t amn break end end auto magnitude num auto magnitude num or 1 if min magnitude then min magnitude num timeText min magnitude else min magnitude num 1 end end if not min magnitude num then Default to seconds if an invalid magnitude is entered min magnitude num 1 end local magnitude num math max min magnitude num auto magnitude num local result num math floor absTimeDiff magnitude num if timeDiff gt 0 then Past if result num 1 then result unit timeUnits magnitude num 1 else result unit timeUnits magnitude num 2 end result result num result unit ago Spaces for ago are added earlier else Future if result num 1 then result unit timeUnits magnitude num 3 else result unit timeUnits magnitude num 4 end result result num result unit time end return result purge end Table to convert entered text values to numeric values timeText seconds 1 minutes 60 hours 3600 days 86400 weeks 604800 months 2678400 years 31557600 Table containing tables of possible units to use in output timeUnits 1 second seconds second s seconds 60 minute minutes minutes minutes 3600 hour hours hour s hours 86400 day days day s days 604800 week weeks week s weeks 2678400 month months month s months 31557600 year years year s years return p ekhathungcak https th wikipedia org w index php title mxdul TimeAgo sandbox amp oldid 5301127, wikipedia, วิกิ หนังสือ, หนังสือ, ห้องสมุด,

บทความ

, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม