Lua时间转化的几个小例子
Lua中时间转换常需将秒数转为天时分秒或仅显示时分秒,以及将毫秒时间戳转为可读日期。通过math.floor取整、math.fmod取模和os.date格式化可快速实现,代码简洁直接且非常实用方便,常见应用如倒计时、视频时长等场景。
在日常开发中,时间格式的转换几乎是绕不开的老话题。无论是游戏里的倒计时、视频播放器的进度显示,还是后台定时任务的计算,你总会遇到“把秒数掰成天、时、分、秒”这种需求。下面整理了几组Lua里常见的时间转换小例子,代码直接可用,逻辑也很直白,希望能帮你省点重复造轮子的时间。
1. 把秒数转换成“xx天xx时xx分xx秒”
最完整的版本,适合显示长周期时间。比如服务器开服倒计时、订阅到期提醒这类场景。
function convertTimeForm(second)
local timeDay = math.floor(second/86400)
local timeHour = math.fmod(math.floor(second/3600), 24)
local timeMinute = math.fmod(math.floor(second/60), 60)
local timeSecond = math.fmod(second, 60) return timeDay, timeHour, timeMinute, timeSecond
end
2. 只显示“xx时xx分xx秒”
如果时间跨度不超过一天,这个更紧凑。比如视频时长、任务运行时间,直接格式化输出就可以了。
local hour = math.floor(time/3600);
local minute = math.fmod(math.floor(time/60), 60)
local second = math.fmod(time, 60)
local rtTime = string.format("%s:%s:%s", hour, minute, second) return rtTime
end
3. 从Unix纪元(1990.1.1)的毫秒数转成可读日期
注意这里用的是毫秒,而os.date需要秒。除以1000之后,就能拿到yyyy-mm-dd HH:MM格式的时间字符串。很多网络协议或日志记录里的时间戳就是这种格式。
--endTime 单位毫秒
os.date("%Y-%m-%d %H:%M",math.floor(endTime/1000))
三个小例子,覆盖了从秒到天、到时、到日期的常见转换路径。实际用的时候,根据业务场景选最合适的那个就行,不用每次都从头算余数。当然,如果你需要更精细的控制(比如补零、国际化显示),在这些基础上稍加修改就能满足。

Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















