在嵌入消息discord.py上写入时间戳

我正在开发一个机器人,我想要一条消息说“今天创建的帐户”或类似的内容(就像在嵌入上使用时间戳属性时所做的那样)而不是“在 2020-09-02 12:22:47.893000 创建的帐户” “我现在的代码是这样的:


@client.event

async def on_member_join(member)

embed = discord.Embed(

    description=f":inbox_tray: <@{member.id}> joined.",

    colour=discord.colour.Color.dark_green(),


    timestamp=datetime.now()

)

embed.set_thumbnail(url=member.avatar_url)

embed.add_field(name='Account created:', value=member.created_at)


embed.set_footer(

    text=f'User Id: {member.id}')

await client.get_channel(logchannel).send(embed=embed)

提前致谢。


慕无忌1623718
浏览 186回答 3
3回答

哈士奇WWW

您可以检查成员加入的日期(<datetime object>.date())以查看是否是今天的日期,如果是,则输入Today at h:m PM,但如果不是今天,则可以通过获取今天的日期来检查该日期是否是昨天的日期( datetime.datetime.today().date() ) 然后使用 'timedelta' 去掉 1 这基本上意味着它从今天开始减去一天,留下昨天的日期,然后你可以检查会员加入日期是否等于我们得到的日期(昨天的日期),如果是这样,Yesteday at h:m PM则如下所示。如果不是今天和昨天的其他事情,那就像dd/mm/yyyy不和谐一样留下它(至少如果我没记错的话)from datetime import timedelta, datetimeembed.add_field(name='Account created:', value=member.created_at.strftime(&nbsp; &nbsp; 'Today at %-I:%M %p' if member.created_at.date() == datetime.today().date()&nbsp; &nbsp; else 'Yesterday at %-I:%M %p' if member.created_at.date() == (datetime.today() - timedelta(1)).date()&nbsp; &nbsp; else '%d/%m/%Y'))

一只斗牛犬

尝试使用这个&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;embed&nbsp;=&nbsp;discord.Embed.from_dict({ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"timestamp":&nbsp;str(datetime.utcnow()), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})Discord 会自动格式化帖子中的文本。例如,在同一天,您将Today at h:m PM在嵌入结束时看到。我希望这是您所期望的答案。

慕哥9229398

这就是使用时间戳的方法。import datetimeem = discord.Embed()em.timestamp = datetime.datetime.utcnow()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python