将字符串类型的时间转换为秒

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将字符串类型的时间转换为秒相关的知识,希望对你有一定的参考价值。

我正在尝试设置一个函数,该函数会将字符串/变量下的内容转换为秒(或unix时间),但是无论如何,我都陷入了非常复杂的解决方案中。有没有多个if语句等的简单方法吗?

local test1 = '01h 25m'
local test2 = '05m 24s'
local test3 = '12s'
function transformTime()
  ...
end

现在通过对3个变量调用此函数,我希望获得:5100(1 * 60 * 60 + 25 * 60),324(5 * 60 + 24 * 1)和12(12 * 1)。

答案

您可以简单地使用字符串模式和捕获来获取每个单元的数字。https://www.lua.org/manual/5.3/manual.html#6.4.1

local test1 = '01h 25m'
local test2 = '05m 24s'
local test3 = '12s'

function transformTime(timeString)

  local seconds = timeString:match("(%d+)s") or 0
  seconds = seconds + 60 * (timeString:match("(%d+)m") or 0)
  seconds = seconds + 3600 * (timeString:match("(%d+)h") or 0)

  return seconds

end

print(transformTime(test1))
print(transformTime(test2))
print(transformTime(test3))

以上是关于将字符串类型的时间转换为秒的主要内容,如果未能解决你的问题,请参考以下文章

如何将描述时间的字符串转换为秒?

Python实现ParseDuration-支持解析字符串格式的时间单位,例如将小时或者分钟数转换为秒

仅在 javascript 中将 HH:MM:SS 字符串转换为秒

Redshift:将 HH:MM:SS 格式的字符串字段转换为秒和向后

如何将mm:ss时间字符串转换为秒整数(postgres / liquibase)

如何将“'n' min 'm' secs”转换为秒格式