gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 10:19:42 25 4
gpt4 key购买 nike

我正在创建一个管理工具,我需要将这样的字符串类型转换为:'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

关于lua - 如何将字符串时间转换为 unix?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54594518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com