首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript日期比较并不总是有效

Javascript日期比较并不总是有效
EN

Stack Overflow用户
提问于 2013-10-08 17:21:09
回答 2查看 63关注 0票数 0

我的应用程序依赖于日期比较,以便让用户“离线”

这是我的代码:

代码语言:javascript
复制
setInterval(function () {
    for (var s in _client) {
        if (_client.hasOwnProperty(s)) {
            var obj = _client[s];

            var lastVisit = new Date(_client[s].lastActive); // for example: 2013-10-8 9:52:24
            var thirtySecs = 31000;
            var now = new Date();
            var thirtySecsAgo = new Date(now - thirtySecs);


            if (lastVisit < thirtySecsAgo) {
                // Should now remove user
                // This does not always work for some reason
            }
        }
    }
}, 15000)

逻辑是,它应该检查每个active clients lastActive属性(它是由心跳更新的)。但有时if不是触发器,因此用户不会被删除。

我一直无法找到为什么有时用户没有被删除,即使超过30分钟已经过去了。

有什么想法可能是错误的,我如何才能确保老用户总是被删除?

EN

回答 2

Stack Overflow用户

发布于 2013-10-08 17:27:54

自动强制转换有时会发生一些奇怪的事情。尝试显式转换为时间戳值并使用这些值。

代码语言:javascript
复制
var d = new Date();
var ts = d.valueOf();
// execute operations
票数 1
EN

Stack Overflow用户

发布于 2013-10-08 17:42:11

我建议通过getTime()将变量nowlastVisitthirtySecs转换为毫秒,这样可以更容易地将它们作为无符号整数进行比较:

代码语言:javascript
复制
var lastVisit = (new Date(_client[s].lastActive)).getTime(); //1381215144000
var now = (new Date()).getTime(); //1381225150208    
var thirtySecs = 31*1000; //31000
var thirtySecsAgo = now - thirtySecs; //1381225119208
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19243768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档