我如何获得用户加入频道或离开频道的时间
console.log(newMember.joinedTimestrap)
它给了我一些数字,而不是日期和时间(例如1572014868278)
console.log(newMember.joinedAt)
给出未定义
const Discord = require("discord.js");
module.exports = async (client,oldMember,newMember) => {
if(newMember.bot) return;
let newUserChannel = newMember.voiceChannel
let oldUserChannel = oldMember.voiceChannel
if(oldUserChannel === undefined && newUserChannel !== undefined) {
} else if(newUserChannel === undefined){
// User leaves a voice channel
}
}
答案 0 :(得分:0)
没有这样的属性member.joinedTimestrap
,但是假设您的意思是member.joinedTimestamp
,则在Unix time中给出。您可以将其传递给Date构造函数,即new Date(member.joinedTimestamp)
,将其转换为常规的Date对象-这是member.joinedAt
在内部执行的操作,因此它应该是给您相同答案的捷径。>
但是,joinedAt
和joinedTimestamp
只是用户加入服务器而不是voiceChannel的时间。用户加入voiceChannel时,代码正在正确运行,因此您只需获取其当前时间即可:new Date()
答案 1 :(得分:0)
当用户加入vc时,GuildMember类中没有任何属性,.joinedTimestrap是该用户加入公会的时间戳。
现在,要回答为什么它给了您一些数字而不是日期,这是他作为unix时间戳加入的日期,要将其转换为可读的日期,请执行以下操作:
let date = new Date(newMember.joinedTimestrap)
// Then you can use the Date class methods for getting the date, hour, minutes etc...
console.log(date)
Date类可用的方法的完整列表可以在MDN
上找到。现在,如果要获取用户加入频道的时间,只需在事件触发后立即创建一个新的Date对象,然后将其记录下来:
let date = new Date()
console.log(date)