LuaDate Metamethods 在 Lua 5.1.4 中出现了问题。

我是 Lua 的新手,想在 OpenWrt 系统上的项目中使用 LuaDate 库。

似乎在 OpenWrt Backfire 中安装的 Lua 版本 5.1.4 中,元方法无法正常工作。如果我在 osx 上尝试以下代码:

date = require('date')
print(date('2013-12-14T00:07:04') < date('2013-12-14T12:07:01'))

输出 true。如果我在安装 LUA 5.1.4 的 OpenWrt 上运行代码,则会引发错误:

lua: test.lua:3: attempt to compare two table values
    stack traceback:
    test.lua:3: in main chunk
    [C]: ?

有可能修复这个问题吗?例如直接调用元方法?

点赞
用户2679394
用户2679394

你从日期库中获取了一个表格,你可以使用 < 仅针对数字。最好获取一个简单日期值的键名和值名,以了解它具有的成员。

for k, v in pairs(date("2013-12-14T00:07:04")) do
print("KEY: "..k..", VALUE: "..v)
end

获得键和值后,可以使用类似以下内容的代码:

local d = date("2013-12-14T00:07:04")
local num = 0
num = d.seconds
num = num + d.minutes * 60
num = num + d.hours * 3600
if (num < 1500) return end
2013-12-16 17:54:07