小编kim*_*sen的帖子

在javascript/momentjs中创建日期时忽略时区

我正在为东海岸的某些东西创建一个时间表,我需要创建一个始终返回此时的日期对象/时间戳的日期.

所以,如果我在18:00在巴黎打开页面,"new myDate()"应该返回12:00.

有关如何使用枯萎的时刻或仅使用Javascript来做到这一点的任何建议?最终结果应该是一个javascript Date对象.

javascript momentjs

61
推荐指数
2
解决办法
8万
查看次数

使用套接字io的已连接客户端用户名列表

我在NodeJS,socketIO和Express中创建了一个具有不同聊天室的聊天客户端.我试图在每个房间的连接用户上显示更新列表.

有没有办法将用户名连接到对象,所以当我这样做时,我可以看到所有用户名:

var users = io.sockets.clients('room')
Run Code Online (Sandbox Code Playgroud)

然后做这样的事情:

users[0].username
Run Code Online (Sandbox Code Playgroud)

我还能以其他方式做到这一点?

解决了: 这有点重复,但解决方案并没有在任何地方写得很清楚,所以我想我在这里写下来.这是由Andy Hin解决的帖子,由mak回答.还有这篇文章中的评论.

只是为了让事情更清楚一些.如果要在套接字对象上存储任何内容,可以执行以下操作:

socket.set('nickname', 'Guest');    
Run Code Online (Sandbox Code Playgroud)

套接字也有一个get方法,所以如果你想让所有的用户都这样做:

for (var socketId in io.sockets.sockets) {
    io.sockets.sockets[socketId].get('nickname', function(err, nickname) {
        console.log(nickname);
    });
}
Run Code Online (Sandbox Code Playgroud)

正如alessioalex指出的那样,API可能会发生变化,并且自己跟踪用户会更安全.您可以通过在断开连接时使用套接字ID来实现此目的.

io.sockets.on('connection', function (socket) { 
    socket.on('disconnect', function() { 
        console.log(socket.id + ' disconnected');
        //remove user from db
    }
});
Run Code Online (Sandbox Code Playgroud)

node.js express socket.io

35
推荐指数
1
解决办法
7万
查看次数

变量不同步更新

我一直遇到这个问题.而现在它与Date对象有关

var now = new Date();
var later = new Date();
later.setHours( later.getHours() + 8 );

<Wait for somthing>
now = later;
later.setHours( later.getHours() + 8 );

alert(now == later); //returns True
Run Code Online (Sandbox Code Playgroud)

我认为这可以使用回调来解决:

var adjustTime = function(callback){
     now = later;
     callback();
}
adjustTime(function(){
    later.setHours( later.getHours() + 8 );
});

alert(now == later); //returns True
Run Code Online (Sandbox Code Playgroud)

我不明白什么?如何正确更新这些变量?

编辑: 好的,我应该更好地解释自己.我想要做的是将now变量更新为稍后的.之后我想稍后再增加8小时.

javascript

0
推荐指数
1
解决办法
85
查看次数

标签 统计

javascript ×2

express ×1

momentjs ×1

node.js ×1

socket.io ×1