最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

无法解码日期和时间 Javascript

网站源码admin32浏览0评论

无法解码日期和时间 Javascript

无法解码日期和时间 Javascript

我正在使用 discord.js 和 Clash Of clans API 制作一个 discord 机器人。

我做了几个功能,但我无法让 1 正常运行。这是代码:

const clanwar = JSON.parse(body);

const prepStart = new Date(clanwar.preparationStartTime.slice(0, -8));
const prepStartStr = `${prepStart.getDate()}/${prepStart.getMonth() +                               1}/${prepStart.getFullYear()} ${prepStart.getHours()} ${prepStart.getMinutes()} ${prepStart.getSeconds()}`;

const start = new Date(clanwar.startTime.slice(0, -8));
const startStr = `${start.getDate()}/${start.getMonth() + 1}/${start.getFullYear()} ${start.getHours()} ${start.getMinutes()} ${start.getSeconds()}`;

const end = new Date(clanwar.endTime.slice(0, -8));
const endStr = `${end.getDate()}/${end.getMonth() + 1}/${end.getFullYear()} ${end.getHours()} ${end.getMinutes()} ${end.getSeconds()}`;

if (err) 
{
    callback(err);
    return;
};

if (res.statusCode === 404) 
{
    const error = new Error(`Make sure you've provided a tag without # : \n :x: \`.clan #XYZ12345\`\n:white_check_mark: \`.clan XYZ12345\`\nIf the command still doesn't work contact staff and/or report using the .report (message) command`);
    callback(error);
    return;
};

callback(null, { clanwar, prepStartStr, startStr, endStr });

代码很乱,我知道并且没有优化,但我稍后会处理。现在的问题是在我得到 prepStartStr StartStr EndStr 的那一行,我从 Body 中得到日期,它以这种形式出现:

preparationStartTime: '20230422T185511.000Z', 开始时间:'20230423T175511.000Z', 结束时间:'20230424T175511.000Z',

但是当我运行它时,它显示这样的时间和 console.log() 这是我在控制台中得到的:

准备:NaN/NaN/NaN NaN NaN NaN 开始:NaN/NaN/NaN NaN NaN NaN 结束:NaN/NaN/NaN NaN NaN NaN

功能的完整代码以及我在哪里调用它:

控制台输出

首先,我使用 toISOString() 方法将日期转换为字符串格式,这导致 NaN/NaN 的输出不正确...... 然后我尝试修改代码以改用 toLocaleString() 方法,但这也产生了不正确的输出。之后,我尝试在解析日期字符串之前替换日期字符串中的 T 和 .000Z 子字符串,但这仍然没有解决问题。最后,我修改了代码以使用 slice() 方法从日期字符串中删除最后五个字符而不是替换子字符串,但这仍然导致输出不正确。 在这一点上,我仍在努力弄清楚为什么输出不正确以及如何修复它。

我试过 chatGPT,它也试过类似的东西,但我仍然无法让它工作

回答如下:
发布评论

评论列表(0)

  1. 暂无评论