Modul:ISOtilNorskdato: Forskjell mellom sideversjoner

Fra wikisida.no
Hopp til navigering Hopp til søk
rv
fix?
Linje 3: Linje 3:


function p.formatIsoDate(date)
function p.formatIsoDate(date)
if date:match("^%d%d%p%s%a%a%a%p%s%d%d%d%d$") then
if date:match("^%d%d%d%d%-%d%d%-%d%d$") or date:match("^%d%d%d%d%-%d%d%-%d$") or date:match("^%d%d%d%d%-%d%-%d%d$") or date:match("^%d%d%d%d%-%d%-%d$") then
return lang:formatDate( "j. F Y", date, true )
elseif date:match("^%d%d%d%d%-%d%d$") or date:match("^%d%d%d%d%-%d$") then
return lang:formatDate( "F Y", date, true )
elseif date:match("^%d%d\.%s%a%a%a\.%s%d%d%d%d$") then
if string.sub(date,-9,-7) == "okt" then
if string.sub(date,-9,-7) == "okt" then
return string.sub(date,-13,-12) .. ". oktober " .. string.sub(date,-4,-1)
return string.sub(date,-13,-12) .. ". oktober " .. string.sub(date,-4,-1)
Linje 9: Linje 13:
return string.sub(date,-13,-12) .. ". desember " .. string.sub(date,-4,-1)
return string.sub(date,-13,-12) .. ". desember " .. string.sub(date,-4,-1)
else
else
local daymonth = lang:formatDate('j. F', date)
return lang:formatDate("j. F Y", date, true)
local year = lang:formatDate('Y', date)
assert(tonumber(year), date)
return daymonth .. " " .. year
end
end
elseif date:match("^%d%p%s%a%a%a%p%s%d%d%d%d$") then
elseif date:match("^%d\.%s%a%a%a\.%s%d%d%d%d$") then
if string.sub(date,-9,-7) == "okt" then
if string.sub(date,-9,-7) == "okt" then
return string.sub(date,-12,-12) .. ". oktober " .. string.sub(date,-4,-1)
return string.sub(date,-12,-12) .. ". oktober " .. string.sub(date,-4,-1)
Linje 20: Linje 21:
return string.sub(date,-12,-12) .. ". desember " .. string.sub(date,-4,-1)
return string.sub(date,-12,-12) .. ". desember " .. string.sub(date,-4,-1)
else
else
local daymonth = lang:formatDate('j. F', date)
return lang:formatDate("j. F Y", date, true)
local year = lang:formatDate('Y', date)
assert(tonumber(year), date)
return daymonth .. " " .. year
end
end
elseif date:match("^%d%d%d%d%-%d%d%-%d%d$") or date:match("^%d%d%d%d%-%d%d%-%d$") or date:match("^%d%d%d%d%-%d%-%d%d$")
else
or date:match("^%d%d%p%s%oktp%s%d%d%d%d$") or date:match("^%d%d%p%s\d\e\sp%s%d%d%d%d$")
return date
or date:match("^%d%d%d%d%-%d%-%d$") then
local daymonth = lang:formatDate('j. F', date)
local year = lang:formatDate('Y', date)
assert(tonumber(year), date)
return daymonth .. " " .. year
end
end
return date
end
end


Linje 40: Linje 32:
return p.formatIsoDate(date)
return p.formatIsoDate(date)
end
end
return p
return p

Sideversjonen fra 27. okt. 2015 kl. 12:28

Denne modulen bruker #time-funksjonen til å omdanne datoer til formen DD. MMMM ÅÅÅÅ (for eksempel 21. februar 1981) som er standard på no.wiki.

Den første, og eneste, parameteren er datoen man ønsker å omsette til norsk wikistandard.

Se mal:ISOtilNorskdato som er frontend for modulen.



local p = {}
local lang = mw.getContentLanguage()

function p.formatIsoDate(date)
		if date:match("^%d%d%d%d%-%d%d%-%d%d$") or date:match("^%d%d%d%d%-%d%d%-%d$") or date:match("^%d%d%d%d%-%d%-%d%d$") or date:match("^%d%d%d%d%-%d%-%d$") then
		return lang:formatDate( "j. F Y", date, true )
	elseif date:match("^%d%d%d%d%-%d%d$") or date:match("^%d%d%d%d%-%d$") then
		return lang:formatDate( "F Y", date, true )
	elseif date:match("^%d%d\.%s%a%a%a\.%s%d%d%d%d$") then
		if string.sub(date,-9,-7) == "okt" then
			return string.sub(date,-13,-12) .. ". oktober " .. string.sub(date,-4,-1)
		elseif string.sub(date,-9,-7) == "des" then
			return string.sub(date,-13,-12) .. ". desember " .. string.sub(date,-4,-1)
		else
			return lang:formatDate("j. F Y", date, true)
		end
	elseif date:match("^%d\.%s%a%a%a\.%s%d%d%d%d$") then
		if string.sub(date,-9,-7) == "okt" then
			return string.sub(date,-12,-12) .. ". oktober " .. string.sub(date,-4,-1)
		elseif string.sub(date,-9,-7) == "des" then
			return string.sub(date,-12,-12) .. ". desember " .. string.sub(date,-4,-1)
		else
			return lang:formatDate("j. F Y", date, true)
		end
	else
		return date
	end
end

function p.isodato(frame)
	local date = mw.text.trim(frame.args[1])
	return p.formatIsoDate(date)
end
return p