我怎样才能正确显示时间

How can i display correctly time

我正在使用 discord.js 库在 Visual studio 代码中构建代码。我想从机器人那里,当用户发送命令时,回复当前日期和时间。

我使用的代码是:

const moment = require('moment');
module.exports = {
    name: 'onduty',
    description: 'This is an ONDUTY command!',
    execute(message, args, Discord){
        var d = moment().format('MMMM Do YYYY, h:mm:ss a');
        const newEmbed = new Discord.MessageEmbed()
        .setColor('#0c0c0c')
        .setDescription(`**Ο ${message.author} μπηκε on duty στις :**\n`
        + `**${d}**`)
        message.delete()
        message.channel.send(newEmbed);
        
    },
};

当我执行它发送的命令时,例如:2021 年 2 月 21 日 13:59 但我的时间是 +2 小时(15:59)

现在你可以在这里声明任何 tz(TimeZone) 你有一个 list of them.

基于时刻 docs 这是一个例子:

moment.tz("2013-12-01", "America/Los_Angeles").format(); // 2013-12-01T00:00:00-08:00

为了回答你的问题,我选择了 Europe/Bucharest,即 GMT +02:00

var d = moment().tz("Europe/Bucharest").format('MMMM Do YYYY, h:mm:ss a');

不幸的是(目前)无法在自己的时区向 Discord 用户显示 dates/times。希望 Discord 将实施 'tag' 或类似的东西,允许机器人发送带有 date/times 的消息,然后 Discord 客户端可以将其转换为用户自己的时区(就像他们目前对消息 timestamps/etc 所做的那样) ).

see this thread for more info