如何获取 UTC 时间,添加用户定义的偏移量,然后将其转换为 Unix(纪元)格式?



guildMemberAdd上,它会给我一个Unix时间戳(member.joinedTimestamp(,然后我使用它toFormattedString()使其可读。但是,没有member.leftTimestamp这样的事情.

澄清一下:
guildMemberAddlogsJoin: 06/16/20 17:31:09.
guildMemberRemovelogsLeft: 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);.祝你的项目好运!

相关内容

最新更新