Module:PageDates: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
-- | -- Properly handle ordinal suffixes | ||
local function ordinal(n) | local function ordinal(n) | ||
local v = n % 100 | local v = n % 100 | ||
if v >= 11 and v <= 13 then | if v >= 11 and v <= 13 then | ||
return n .. "th" | return n .. "th" | ||
end | end | ||
return n .. | local lastDigit = n % 10 | ||
if lastDigit == 1 then return n .. "st" | |||
elseif lastDigit == 2 then return n .. "nd" | |||
elseif lastDigit == 3 then return n .. "rd" | |||
else return n .. "th" | |||
end | |||
end | end | ||
Line 15: | Line 19: | ||
local timestamp = frame:preprocess("{{REVISIONTIMESTAMP}}") | local timestamp = frame:preprocess("{{REVISIONTIMESTAMP}}") | ||
-- | -- Extract date parts | ||
local day = tonumber(lang:formatDate("j", timestamp)) | local day = tonumber(lang:formatDate("j", timestamp)) | ||
local month = lang:formatDate("F", timestamp) | local month = lang:formatDate("F", timestamp) | ||
Line 21: | Line 25: | ||
local formatted = string.format("%s %s, %s", month, ordinal(day), year) | local formatted = string.format("%s %s, %s", month, ordinal(day), year) | ||
return formatted | return "on " .. formatted | ||
end | end | ||
return p | return p |