在guildMemberAdd
上,它会给我一个Unix时间戳(member.joinedTimestamp
(,然后我使用它toFormattedString()
使其可读。但是,没有member.leftTimestamp
这样的事情.
澄清一下:guildMemberAdd
logsJoin: 06/16/20 17:31:09
.guildMemberRemove
logsLeft: 06/16/20 10:47:50
.
所以,我想我必须获取 UTC 时间,添加一个偏移量(在这种情况下,EST 为 -5 小时(,然后将其转换为 Unix 时间戳,但我不知道该怎么做。
String.prototype.padLeft = function (length, character) {
return new Array(length - this.length + 1).join(character || ' ') + this;
};
Date.prototype.toFormattedString = function() {
return [String(this.getMonth() + 1).padLeft(2, '0'),
String(this.getDate()).padLeft(2, '0'),
String(this.getFullYear()).substr(2, 2)
].join("/") + " " + [String(this.getHours()).padLeft(2, '0'),
String(this.getMinutes()).padLeft(2, '0'), String(this.getSeconds()).padLeft(2, '0')
].join(":");
};
client.on('guildMemberAdd', member => {
const channel = member.guild.channels.cache.find(ch => ch.name === 'welcome');
if (!channel) return;
var timestamp = new Date(member.joinedTimestamp);
console.log('Join: ' + timestamp.toFormattedString());
});
client.on('guildMemberRemove', member => {
const channel = member.guild.channels.cache.find(ch => ch.name === 'welcome');
if (!channel) return;
var timestamp = new Date().getTime(); // this is what I need to change
console.log('Left: ' + timestamp.toFormattedString());
});
你离得太近了!new Date().getTime()
以毫秒为单位返回,我们需要做的就是获得 Unix 时间戳除以 1000。然后将其四舍五入以获得一个漂亮的干净时间戳。Math.round(new Date().getTime()/1000);
.祝你的项目好运!