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))
三个小例子,覆盖了从秒到天、到时、到日期的常见转换路径。实际用的时候,根据业务场景选最合适的那个就行,不用每次都从头算余数。当然,如果你需要更精细的控制(比如补零、国际化显示),在这些基础上稍加修改就能满足。

作者最新文章
漫蛙manwa2在线阅读入口
2026-10-13 13:49
漫蛙漫画app下载安装包
2026-10-13 13:19
漫蛙MANWA2官方入口
2026-10-13 13:18
manwa漫蛙APP下载最新版本
2026-10-13 13:17
漫蛙漫画官方网页版app下载
2026-10-13 13:16
上一篇:
把Lua编译进nginx步骤方法
下一篇:
Lua多行注释和取消多行注释的方法
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































