加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

lua – 如何将字符串时间转换为unix?

发布时间:2020-12-14 21:42:38 所属栏目:大数据 来源:网络整理
导读:我正在创建一个管理工具,我需要将字符串类型转换为:’1y2m3d4h5mi6s’到Lua中的unixtime(秒).我该怎么做? 我希望StrToTime(“1d”)的输出为86400. 解决方法 function StrToTime(time_as_string) local dt = {year = 2000,month = 1,day = 1,hour = 0,min =
我正在创建一个管理工具,我需要将字符串类型转换为:’1y2m3d4h5mi6s’到Lua中的unixtime(秒).我该怎么做?

我希望StrToTime(“1d”)的输出为86400.

解决方法

function StrToTime(time_as_string)
   local dt = {year = 2000,month = 1,day = 1,hour = 0,min = 0,sec = 0}
   local time0 = os.time(dt)
   local units = {y="year",m="month",d="day",h="hour",mi="min",s="sec",w="7day"}
   for num,unit in time_as_string:gmatch"(%d+)(%a+)" do
      local factor,field = units[unit]:match"^(%d*)(%a+)$"
      dt[field] = dt[field] + tonumber(num) * (tonumber(factor) or 1)
   end
   return os.time(dt) - time0
end

print(StrToTime("1d"))      --  86400
print(StrToTime("1d1s"))    --  86401
print(StrToTime("1w1d1s"))  --  691201
print(StrToTime("1w1d"))    --  691200

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读