lua根据两个时间计算天数差值
记录一下,lua如何根据两个时间来计算天数差,例如:今天时间是23:00, 明天的时间是1:00, 时间不足24小时,但日数的差值也为1,就是说不足1天也计算为1天,假如简单通过加减24小时来计算,结果会出现误差, 我们看下如何实现。
实现思路:首先对两个时间点进行解析,解析出年月日,重新设置时间为0点来获取时间戳(不传入时间参数默认为0点),然后对两个时间戳相减得出秒数差值,再除以1天的总秒数,即可得出天数差值,最后取绝对值。
function DateUtil.getDateNum(timeNow, timeNext)
local ret = 0
if timeNow and timeNext then
local now = os.date("*t", timeNow)
local next = os.date("*t", timeNext)
if now and next then
local num1 = os.time({ year = now.year, month=now.month, day=now.day })
local num2 = os.time({ year = next.year, month=next.month, day=next.day })
if num1 and num2 then
ret = math.abs(num1 - num2) / (3600*24)
end
end
end
return ret
end
测试:当天与国庆还有多少天
--测试日期差
local now = os.time();
local preTime = os.time({year=2021, month=10, day=1, hour=10, min=1, sec=0})
local num = DateUtil.getDateNum(now, preTime)
print("day num =", num)