为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕无忌1623718 2023-07-11 13:54:38
我正在开发一个机器人,我想要一条消息说“今天创建的帐户”或类似的内容(就像在嵌入上使用时间戳属性时所做的那样)而不是“在 2020-09-02 12:22:47.893000 创建的帐户” “我现在的代码是这样的:@client.eventasync 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)提前致谢。
查看完整描述

3 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

您可以检查成员加入的日期(<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, datetime

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

    'Today at %-I:%M %p' if member.created_at.date() == datetime.today().date()

    else 'Yesterday at %-I:%M %p' if member.created_at.date() == (datetime.today() - timedelta(1)).date()

    else '%d/%m/%Y')

)


查看完整回答
反对 回复 2023-07-11
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

尝试使用这个

        embed = discord.Embed.from_dict({
                    "timestamp": str(datetime.utcnow()),
        })

Discord 会自动格式化帖子中的文本。例如,在同一天,您将Today at h:m PM在嵌入结束时看到。我希望这是您所期望的答案。


查看完整回答
反对 回复 2023-07-11
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

这就是使用时间戳的方法。


import datetime


em = discord.Embed()


em.timestamp = datetime.datetime.utcnow()

//img1.sycdn.imooc.com//64aceed30001c6f603100126.jpg

查看完整回答
反对 回复 2023-07-11
  • 3 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信