Module:TimeGreeting: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(16 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
function p.getGreeting() | function p.getGreeting() | ||
-- Use local time (server's time zone) | -- Use local time (server's time zone) | ||
local now = mw.getCurrentFrame():callParserFunction("#time", " | local now = mw.getCurrentFrame():preprocess('{{#time:YmdHis}}') | ||
local offsetHours = tonumber(mw.getCurrentFrame():callParserFunction("#time", "H")) | |||
mw.getCurrentFrame():preprocess('{{#time:YmdHis}}') | |||
-- Alternatively, use UTC+1 | -- Alternatively, use UTC+1 | ||
-- local now = mw.getCurrentFrame():callParserFunction("#time", "Y-m-d H:i:s", "1") | -- local now = mw.getCurrentFrame():callParserFunction("#time", "Y-m-d H:i:s", "1") | ||
offsetHours = offsetHours + 1 | |||
local hours = tonumber(now:match("(%d%d)")) | local hours = tonumber(now:match("(%d%d)")) | ||
if hours then | if hours then | ||
-- Adjust for local time zone | |||
hours = hours + offsetHours | |||
local greeting | |||
if hours >= 6 and hours < 12 then | if hours >= 6 and hours < 12 then | ||
greeting = "Good morning" | |||
elseif hours >= 12 and hours < 18 then | elseif hours >= 12 and hours < 14 then | ||
greeting = "Good noon" | |||
elseif hours >= 14 and hours < 18 then | |||
greeting = "Good afternoon" | |||
elseif hours >= 18 and hours < 24 then | |||
greeting = "Good night" | |||
elseif hours >= 0 and hours < 6 then | |||
greeting = "Good midnight" | |||
else | else | ||
greeting = "Unknown time" | |||
end | end | ||
local fullTime = mw.getCurrentFrame():callParserFunction("#time", "H:i:s") | |||
return greeting .. " | Full local time: " .. fullTime | |||
else | else | ||
return "Error: Unable to determine the time" | return "Error: Unable to determine the time" |
Latest revision as of 10:33, 29 January 2024
Unknown time | Full local time: 18:38:31
-- Module:TimeGreeting local p = {} function p.getGreeting() -- Use local time (server's time zone) local now = mw.getCurrentFrame():preprocess('{{#time:YmdHis}}') local offsetHours = tonumber(mw.getCurrentFrame():callParserFunction("#time", "H")) mw.getCurrentFrame():preprocess('{{#time:YmdHis}}') -- Alternatively, use UTC+1 -- local now = mw.getCurrentFrame():callParserFunction("#time", "Y-m-d H:i:s", "1") offsetHours = offsetHours + 1 local hours = tonumber(now:match("(%d%d)")) if hours then -- Adjust for local time zone hours = hours + offsetHours local greeting if hours >= 6 and hours < 12 then greeting = "Good morning" elseif hours >= 12 and hours < 14 then greeting = "Good noon" elseif hours >= 14 and hours < 18 then greeting = "Good afternoon" elseif hours >= 18 and hours < 24 then greeting = "Good night" elseif hours >= 0 and hours < 6 then greeting = "Good midnight" else greeting = "Unknown time" end local fullTime = mw.getCurrentFrame():callParserFunction("#time", "H:i:s") return greeting .. " | Full local time: " .. fullTime else return "Error: Unable to determine the time" end end function p.displayGreeting(frame) return p.getGreeting() end return p