Modul:LinkSubformDatum: Unterschied zwischen den Versionen
Aus FürthWiki
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 4: | Zeile 4: | ||
function p.GetMonthday(frame) | function p.GetMonthday(frame) | ||
local | local args = frame:getParent().args | ||
return p.get_monthday(args[1]) | return p.get_monthday(args[1]) | ||
end | end | ||
function p.get_monthday(date) | function p.get_monthday(date) | ||
local months=c.getMonthList() | local months = c.getMonthList() | ||
local date_array=str.split(date, "/") | local date_array = str.split(date, "/") | ||
if c.isEmpty(date_array[ | if c.isEmpty(date_array[2]) then | ||
-- When datestring contained no "/" | -- When datestring contained no "/" | ||
mda = str.split(date_array[ | local mda = str.split(date_array[1]) | ||
if c.isEmpty(mda[ | if c.isEmpty(mda[2]) then | ||
-- When dateformat is just YYYY | -- When dateformat is just YYYY | ||
return "" | return "" | ||
else | else | ||
-- Dateformat is <monthname> YYYY | -- Dateformat is <monthname> YYYY | ||
return mda[ | return mda[1] | ||
end | end | ||
else | else | ||
mn = months[tonumber(date_array[ | mn = months[tonumber(date_array[2])] | ||
date_array[ | date_array[3] = date_array[3]:gsub('0*', '', 1) | ||
return date_array[ | return date_array[3]:gsub("%s+", "") .. ". " .. mn | ||
end | end | ||
end | end | ||
function p.GetYear(frame) | function p.GetYear(frame) | ||
args = frame.args | local args = frame.args | ||
return get_year(args[1]) | |||
end | end | ||
function get_year(date) | function get_year(date) | ||
date_array=str.split(date, "/") | local date_array=str.split(date, "/") | ||
if c.isEmpty(date_array[ | if c.isEmpty(date_array[2]) then | ||
-- When datestring contained no "/" | -- When datestring contained no "/" | ||
mda = str.split(date_array[ | local mda = str.split(date_array[1]) | ||
if c.isEmpty(mda[ | if c.isEmpty(mda[2]) then | ||
-- When dateformat is just YYYY | -- When dateformat is just YYYY | ||
return mda[ | return mda[1] | ||
else | else | ||
-- Dateformat is <monthname> YYYY | -- Dateformat is <monthname> YYYY | ||
return mda[ | return mda[2] | ||
end | end | ||
elseif c.isEmpty(date_array[ | elseif c.isEmpty(date_array[3]) then | ||
-- Datestring contained one "/" | -- Datestring contained one "/" | ||
return date_array[ | return date_array[1] | ||
else | else | ||
-- Dateformat should be YYYY/MM/DD | -- Dateformat should be YYYY/MM/DD | ||
return date_array[ | return date_array[1] | ||
end | end | ||
end | end | ||
return p | return p | ||
Version vom 24. August 2025, 09:37 Uhr
Dieses Modul befasst sich mit Datumskonversionen bei Subformularen, wenn also Subobjekte abgebildet werden sollen. Es geht um die Konvertierung der Datumsformate, wie sie auch bei normalen Formularen stattfinden.
GetMonthday
Konvertiert ein Formular-Datum wie 2025/01/08 zu 8. Januar. Ist das Format Oktober 2022 kommt Oktober raus.
GetYear
Konvertiert ein Formular-Datum wie 2025/01/08 zu 2025. Es versteht aber auch das Datumsformat Oktober 2022
local p = {}
local c = require( "Module:Common" )
local str = require("Modul:String")
function p.GetMonthday(frame)
local args = frame:getParent().args
return p.get_monthday(args[1])
end
function p.get_monthday(date)
local months = c.getMonthList()
local date_array = str.split(date, "/")
if c.isEmpty(date_array[2]) then
-- When datestring contained no "/"
local mda = str.split(date_array[1])
if c.isEmpty(mda[2]) then
-- When dateformat is just YYYY
return ""
else
-- Dateformat is <monthname> YYYY
return mda[1]
end
else
mn = months[tonumber(date_array[2])]
date_array[3] = date_array[3]:gsub('0*', '', 1)
return date_array[3]:gsub("%s+", "") .. ". " .. mn
end
end
function p.GetYear(frame)
local args = frame.args
return get_year(args[1])
end
function get_year(date)
local date_array=str.split(date, "/")
if c.isEmpty(date_array[2]) then
-- When datestring contained no "/"
local mda = str.split(date_array[1])
if c.isEmpty(mda[2]) then
-- When dateformat is just YYYY
return mda[1]
else
-- Dateformat is <monthname> YYYY
return mda[2]
end
elseif c.isEmpty(date_array[3]) then
-- Datestring contained one "/"
return date_array[1]
else
-- Dateformat should be YYYY/MM/DD
return date_array[1]
end
end
return p