KRL:比较两个时间戳

时间:2011-09-20 03:25:39

标签: krl

我有两个用time:now()创建的时间戳(一个存储在过去的app变量中,一个存储在当前时间)。我需要找到它们之间的区别(最好是几分钟)。我该怎么做?

我尝试过这种语法,但解析器并不喜欢它:

diff = time:now() - original_time;

time:compare()没有给我足够的信息,time:add()与我需要的相反。似乎没有任何其他适用的time functions documented

1 个答案:

答案 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;
}

enter image description here