Lua中 Lua os.difftime()用法

有时候我们会有这样的需求就是,从某个时刻到现在经理了多少时间,这在lua里是有现成的函数的,名为os.difftime(),用来计算一个时间到另一个时间之差。

os.difftime
原型:os.difftime (t2, t1)
解释:返回以秒计算的时刻t1到 t2 的差值。 在Windows,和其它一些系统中,这个值就等于 t2-t1。

个人觉得这个函数的局限性太大了,只能传入秒数,好像只做了一个差,那我自己做减法好不好;)
注意函数的定义计算的时刻t1到 t2 的差值,所以不要把参数搞反了,否则会返回负值的。

项目中遇见情况处理

local startDate = goodsConfig.startDate --开始时间
if startDate ~= nil then
local date = {
year = tonumber(string.sub(startDate, 1, 4)),
month = tonumber(string.sub(startDate, 5, 6)),
day = tonumber(string.sub(startDate, 7, 8)),
hour = 0,
min = 0,
sec = 0
}
local dif = os.difftime(os.time(), os.time(date))
dif = goodsConfig.duration - dif / 3600
if dif > 0 then
dif = math.floor(dif / 24) + 1
self.SuplusTime = dif --开始时间
else
self.IsDue = true
return
end
end

第2 网上一个例子
-- 奥运会的时间
local tab = {year=2008, month=8, day=8, hour=20}
local pretime = os.time(tab)
print(os.date("08 Olympic Games time is %x", pretime))

-- 现在的时间
local timetable = os.date("*t");
local nowtime = os.time(timetable)
print(os.date("now time is %c", nowtime))

local difft = os.difftime(nowtime, pretime);

print("from 08 Olympic Games to now cost time "..difft.."s");

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,735评论 0 38
  • --lua中操作系统库os提供4个函数os.clock、os.time、os.date、os.difftime -...
    Insist_2a00阅读 4,892评论 0 0
  • 前言 也做过几次需要使用到time和date的需求了,每次都要百度找一遍,感觉有点蛋疼,所以干脆花点时间研究并记录...
    SimanX阅读 13,159评论 0 0
  • Lua的标准库能与C语言的API直接实现 基础函数库 协程库 string库 table库 math库 io库 操...
    JunChow520阅读 9,788评论 0 10
  • 简介 实例 os.clock(time) 返回执行该程序CPU花去的时钟秒数start=os.clock()whi...
    叫我颜先生阅读 3,821评论 0 0