It can be achieved with "string.format" and "os.time()".
This is how to read the starting date:
local oYear, oMonth, oDay, oHour, oMin = Table.Time:match('(%d+)/(%d+)/(%d+)/(%d+)/(%d+)')
Then onto reading opening interval, portal duration and map duration:
local iDay, iHour, iMin, pDay, pHour, pMin, mDay, mHour, mMin = Table.Time:match('"(%d+)/(%d+)/(%d+)", "(%d+)/(%d+)/(%d+)", "(%d+)/(%d+)/(%d+)"')
"Table" refers to this:
MapTimerNPC.Table['abandonedcity'] = {ID = 88, Map = 0, PosX = 0, PosY = 0, Time = '"2005/8/30/0/0", "0/3/0", "0/1/0", "0/2/0"'}
I have achieved this:
You have to turn the dates into seconds, get the current date and the seconds passed since start date (referring to "2005/8/30/0/0"). From there you also need start comparing times which is not that hard having the 2 functions I mentioned at the start.