Lua时间转化的几个小例子
作者:BrightSoul
时间:2026-06-29
浏览:0
Lua中时间转换常需将秒数转为天时分秒或仅显示时分秒,以及将毫秒时间戳转为可读日期。通过math.floor取整、math.fmod取模和os.date格式化可快速实现,代码简洁直接且非常实用方便,常见应用如倒计时、视频时长等场景。
在日常开发中,时间格式的转换几乎是绕不开的老话题。无论是游戏里的倒计时、视频播放器的进度显示,还是后台定时任务的计算,你总会遇到“把秒数掰成天、时、分、秒”这种需求。下面整理了几组Lua里常见的时间转换小例子,代码直接可用,逻辑也很直白,希望能帮你省点重复造轮子的时间。
1. 把秒数转换成“xx天xx时xx分xx秒”
最完整的版本,适合显示长周期时间。比如服务器开服倒计时、订阅到期提醒这类场景。
复制代码 代码如下:
--把时间 秒,转化为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
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 function formatTime(time)
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
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格式的时间字符串。很多网络协议或日志记录里的时间戳就是这种格式。
复制代码 代码如下:
--把1990.1.1至今的秒数,转化为年月日,时分
--endTime 单位毫秒
os.date("%Y-%m-%d %H:%M",math.floor(endTime/1000))
--endTime 单位毫秒
os.date("%Y-%m-%d %H:%M",math.floor(endTime/1000))
三个小例子,覆盖了从秒到天、到时、到日期的常见转换路径。实际用的时候,根据业务场景选最合适的那个就行,不用每次都从头算余数。当然,如果你需要更精细的控制(比如补零、国际化显示),在这些基础上稍加修改就能满足。

作者最新文章
索尼 Xperia 1 VIII / VII / VI 等手机获 Android 17 更新,新增桌面模式等功能
2026-09-08 16:44
加拿大留学监护声明书(IMM 5646)双页签署与公证核对指南
2026-09-03 15:02
在线PDF转图片教程:一键生成高清图片包
2026-09-03 12:04
Creo零基础入门:新建零件与第一次拉伸建模完整指南
2026-09-03 06:02
扫描件PDF转Word的在线操作步骤与编辑可行性判断
2026-09-02 18:39
上一篇:
把Lua编译进nginx步骤方法
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































