Jump to content

Module:Format time

From Calamity Wiki
Revision as of 21:08, 28 June 2025 by imported>Ymblanter (Protected "Module:Format time": High-risk template or module: request at WP:RFPP ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite)))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This module is a fancy way to call {{#time}} in Lua. Unlike #time, it handles YMD dates (e.g. 2020 January 1) correctly via Module:YMD to ISO.

Syntax

From a template:

{{#invoke:Format date|main|<timestamp>|fmt=<Formatting string>}}

From a module:

require('Module:Format time')._main{<timestamp>, fmt = <Formatting string>}

In both cases, <timestamp> is any timestamp considered valid by {{#time}} plus YMD format. |fmt= can be any format according to mw:Help:Extension:ParserFunctions##time, and defaults to j xg Y, which renders dates like 28 June 2025.



local p = {}

function p.main(frame)
	args = require('Module:Arguments').getArgs(frame)
	return p._main{fmt = args['fmt'], s = args['s'] or args[1]}
end

function p._main(args)
	-- args is a table with two values:
	-- fmt = the format to output the time, according to [[:mw:Help:Extension:ParserFunctions##time]] (default: j xg Y)
	-- s (or [1]) = the string to process; should be a date (default: empty string)
	return mw.getCurrentFrame():callParserFunction('#time', {args.fmt or 'j xg Y', require('Module:YMD to ISO')._main(args.s or args[1])})
end

return p