JavaScript日期转Lua日期

我正在使用node_redis,在redis数据库中使用标准的javascript Date.now()(以毫秒为单位)保存时间戳。

然后,我使用redis的EVAL命令在数据库中运行LUA脚本,以清除旧条目。

有什么办法可以将存储在数据库中的以毫秒为单位的日期/时间翻译为LUA日期/时间对象吗?

点赞
用户570336
用户570336

Lua 的 os 库拥有 date 函数,可用于此类操作。例如,要将 JavaScript 时间戳 1399454674843 转换为一个包含所有信息的表格,只需调用:

local t = os.date("*t", 1399454674843 / 1000)

这将创建一个包含以下条目的表格:

hour    11
min     22
wday    4
day     7
month   5
year    2014
sec     23
yday    127
isdst   true

如果需要创建格式化的字符串,可以传递格式而不是 *t。请查看 22.1 Date and Time of PIL

2014-05-07 09:27:39
用户2285214
用户2285214

虽然 Henrik 的答案可能通常有效,但由于我无法在我的 Redis 脚本中使用 os 库,所以我不得不找到另外的解决方案。

最终我找到的解决方案是将清理日期的 javascript 版本作为参数传递给 lua 脚本,并简单地将该参数与数据库中的日期进行比较,而完全不使用 Lua 日期/时间对象。

我会将这个问题保留一段时间,看看是否有人知道如何在我的 Redis 脚本中正确使用实际的 Lua 日期/时间对象进行更复杂的计算。

2014-05-07 10:30:31