如何在Lua中比较人类格式的时间?

有没有一种方法可以将人类可读时间“09:41:43”转换为可比较的格式?

我想要的是 function timeGreater(time1, time2),满足以下断言

assert(true == timeGreater("09:41:43", "09:00:42"))
assert(false == timeGreater("12:55:43", "19:00:43")))
点赞
用户1442917
用户1442917

似乎一个简单的字符串比较就足够了(假设时间是有效的):

function timeGreater(a, b) return a > b end

assert(true == timeGreater("09:41:43", "09:00:42"))
assert(false == timeGreater("12:55:43", "19:00:43"))
2013-03-13 02:02:29
用户212869
用户212869

将您的时间转换成秒应该可以解决。下面的代码可能有效,LUA 不是我的强项!

function stime(s)
    local pattern = "(%d+):(%d+):(%d+)"
    local hours, minutes, seconds = string.match(s, pattern)
    return (hours*3600)+(minutes*60)+seconds
end

function timeGreater(a, b)
    return stime(a) > stime(b)
end
2013-03-13 02:08:16