我有两个用time:now()
创建的时间戳(一个存储在过去的app变量中,一个存储在当前时间)。我需要找到它们之间的区别(最好是几分钟)。我该怎么做?
我尝试过这种语法,但解析器并不喜欢它:
diff = time:now() - original_time;
time:compare()
没有给我足够的信息,time:add()
与我需要的相反。似乎没有任何其他适用的time functions documented。
答案 0 :(得分:2)
时间函数返回时间字符串,而不是时间对象。要计算经过的时间,您必须将时间字符串转换为纪元时间(自1970年以来的秒数......)。幸运的是,纪元时间是strftime支持的格式之一。
foo = time:now();
efoo = time:strftime(foo,"%s);
减号运算符实际上对前导空格敏感。它位于解析器的工作列表中,但我没有时间去解决它。这是一条工作规则:
rule first_rule {
select when pageview ".*" setting ()
pre {
foo = time:now();
bar = time:add(foo,{"minutes": -5});
ebar = time:strftime(bar,"%s");
efoo = time:strftime(foo,"%s");
diff = efoo-ebar;
}
notify("-5 minutes in seconds", diff) with sticky = true;
}