function timeStampFromStdTime(str, gettab) local t1 = splitString(str, " ") local t2 = splitString(t1[1], "-") local t3 = splitString(t1[2], ":") --tab表示的是服务器时区的时间 --在用作比较时,需要把令一个时间也转换成服务器时区的时间才可以 local tab = { year = tonumber(t2[1]), month = tonumber(t2[2]), day = tonumber(t2[3]), hour = tonumber(t3[1]), min = tonumber(t3[2]), sec = tonumber(t3[3]) } if gettab == true then return tab end --用本地的os.time获取时间戳 local ts = timeStampFromTimeTable(tab) --os.time(tab) + getLocalTimeZoneSec( ) - g_server_time_zone return ts end 转成TS
时间: 2023-11-28 13:47:17 浏览: 85
GetTab.zip_Table
如果你要将这个 Lua 函数转换成一个可以将字符串时间转换为 Unix 时间戳的函数,可以使用以下代码:
```lua
function timeStampFromStdTime(str)
local t1 = splitString(str, " ")
local t2 = splitString(t1[1], "-")
local t3 = splitString(t1[2], ":")
-- tab 表示的是服务器时区的时间
-- 在用作比较时,需要把另一个时间也转换成服务器时区的时间才可以
local tab = {
year = tonumber(t2[1]),
month = tonumber(t2[2]),
day = tonumber(t2[3]),
hour = tonumber(t3[1]),
min = tonumber(t3[2]),
sec = tonumber(t3[3])
}
-- 用 os.time 获取时间戳
local ts = os.time(tab)
-- 返回 Unix 时间戳
return ts
end
```
这个函数会返回一个 Unix 时间戳(即从 1970 年 1 月 1 日 00:00:00 UTC 起至该时间的秒数),你可以直接调用这个函数来将字符串时间转换成 Unix 时间戳:
```lua
local ts = timeStampFromStdTime("2022-03-12 15:22:30")
print(ts) -- 输出:1647128550
```
注意,这个函数没有考虑到时区的问题,如果你需要将字符串时间转换为你所在时区的 Unix 时间戳,需要对代码进行修改。
阅读全文