如何正确收集用户选项以形成 unix 时间戳?

问题描述 投票:0回答:0

我一直在尝试正确格式化此代码以显示准确的 UNIX 时间戳。

代码:

  } else if (interaction.commandName === 'updateraidtime') {
    const month = interaction.options.getString('month');
    const day = interaction.options.getString('day');
    const year = interaction.options.getString('year');
    const time = interaction.options.getString('time');
    const timezone = interaction.options.getString('timezone');
    const raid = interaction.options.getString('raid');
    const channel = interaction.options.getChannel('channel');

    console.log(`month: ${month}`);
    console.log(`day: ${day}`);
    console.log(`year: ${year}`);
    console.log(`time: ${time}`);
    console.log(`timezone: ${timezone}`);
    console.log(`raidName: ${raid}`);
    console.log(`channel: ${channel}`);

    // Format time string
    const formattedTime = time + " " + timezone;

    // Calculate Unix timestamp from inputs
    const dateString = `${month} ${day}, ${year} ${formattedTime}`;
    const date = new Date(dateString);
    const timestamp = date.getTime() / 1000;

    console.log(`dateString: ${dateString}`);
    console.log(`timestamp: ${timestamp}`);

    // Update channel topic
    await channel.setTopic(`Upcoming raid: ${raid} | Time: ${timestamp}`);
    await interaction.reply(`Raid time updated for channel ${channel.name}!`);

我尝试过的这个和其他变体从我的测试中输出以下日志:

month: March
day: 5
year: 2023
time: 15:00
timezone: US/Hawaii
raidName: TATERS
channel: <#815347255531143219>
dateString: March 5 2023 15:00 US/Hawaii
timestamp: NaN

我不明白为什么时间戳是 NaN。任何帮助将不胜感激。

我尝试过其他操作日期构造函数的方法,但都没有用。

node.js date discord.js unix-timestamp
© www.soinside.com 2019 - 2024. All rights reserved.