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

前端之家收集整理的这篇文章主要介绍了lua – 如何将字符串时间转换为unix?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在创建一个管理工具,我需要将字符串类型转换为:’1y2m3d4h5mi6s’到Lua中的unixtime(秒).我该怎么做?

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

解决方法

  1. function StrToTime(time_as_string)
  2. local dt = {year = 2000,month = 1,day = 1,hour = 0,min = 0,sec = 0}
  3. local time0 = os.time(dt)
  4. local units = {y="year",m="month",d="day",h="hour",mi="min",s="sec",w="7day"}
  5. for num,unit in time_as_string:gmatch"(%d+)(%a+)" do
  6. local factor,field = units[unit]:match"^(%d*)(%a+)$"
  7. dt[field] = dt[field] + tonumber(num) * (tonumber(factor) or 1)
  8. end
  9. return os.time(dt) - time0
  10. end
  11.  
  12. print(StrToTime("1d")) -- 86400
  13. print(StrToTime("1d1s")) -- 86401
  14. print(StrToTime("1w1d1s")) -- 691201
  15. print(StrToTime("1w1d")) -- 691200

猜你在找的Lua相关文章