【问题标题】:Write timestamp on embed message discord.py在嵌入消息 discord.py 上写入时间戳
【发布时间】:2020-12-21 15:59:09
【问题描述】:

我正在开发一个机器人,我想发一条消息说“今天创建的帐户”或类似的内容(就像在嵌入上使用时间戳属性时所做的那样),而不是“在 2020 年 9 月 2 日 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)

提前致谢。

【问题讨论】:

    标签: python discord discord.py


    【解决方案1】:

    试试这个

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

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

    【讨论】:

      【解决方案2】:

      您可以查看会员加入的日期 (.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')
      )
      

      【讨论】:

        猜你喜欢
        • 2019-01-12
        • 2021-03-10
        • 2021-02-13
        • 2020-09-08
        • 2020-03-17
        • 1970-01-01
        • 2019-03-14
        • 1970-01-01
        • 2021-03-04
        相关资源
        最近更新 更多