Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

124
Views
unióAtTimeStamp está mostrando Nan discord.js

Estaba codificando un comando de información de userInfo , pero cuando uso el comando, joinedAtTimeStamp muestra <t:NaN:R> en la inserción. Es el único problema en este código.

Mi código:

 const { MessageEmbed, ContextMenuInteraction } = require("discord.js"); module.exports = { name: "userInfo", aliases: ["user"], permissions: ["SEND_MESSAGES", "ATTACH_FILES"], description: "user", async execute(message, args, cmd, client, Discord, profileData) { const target = message.mentions.users.first(); if(!args[0]) { const response2 = new MessageEmbed() .setColor("RANDOM") .setAuthor({name: message.author.tag, iconURL: message.author.displayAvatarURL({dynamic: true})}) .setThumbnail(message.author.displayAvatarURL({dynamic: true})) .addFields( {name: "ID", value: message.author.id}, {name: "Joined Server", value: `<t:${parseInt(message.author.joinedTimestamp / 1000)}:R>`, inline: true}, {name: "Account Created", value: `<t:${parseInt(message.author.createdTimestamp / 1000)}:R>`, inline: true}, ); message.reply({embeds:[response2]}); } const response = new MessageEmbed() .setColor("RANDOM") .setAuthor({name: target.tag, iconURL: target.displayAvatarURL({dynamic: true})}) .setThumbnail(target.displayAvatarURL({dynamic: true})) .addFields( {name: "ID", value: target.id}, {name: "Joined Server", value: `<t:${parseInt(target.joinedTimestamp / 1000)}:R>`, inline: true}, {name: "Account Created", value: `<t:${parseInt(target.createdTimestamp / 1000)}:R>`, inline: true}, ); message.reply({embeds: [response], ephemeral: true}) } }

Estoy usando discord.js v13 y node 16.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

message.author es un User y no tiene una propiedad joinedTimestamp , solo la tienen GuildMember . message.member representa al autor del mensaje como miembro del gremio, por lo que puede usarlo, ya que tendrá una propiedad joinedTimestamp .

La razón por la que ve NaN en lugar del valor correcto es porque parseInt devolverá NaN si intenta analizar undefined :

 console.log('undefined:', parseInt(undefined / 1000, 10)); console.log('3459192421512:', parseInt(3459192421512 / 1000, 10));

El siguiente código debería funcionar como se esperaba

 .addFields( { name: 'ID', value: message.author.id }, { name: 'Joined Server', value: `<t:${parseInt(message.member.joinedTimestamp / 1000, 10)}:R>`, inline: true, }, { name: 'Account Created', value: `<t:${parseInt(message.author.createdTimestamp / 1000, 10)}:R>`, inline: true, }, );

En cuanto a target , es el mismo problema; message.mentions.users.first() es un User . Puede crear una nueva variable, por ejemplo, targetMember y asignar message.mentions.members.first() , por lo que será un GuildMember :

 const target = message.mentions.users.first(); const targetMember = message.mentions.members.first();

Y luego, simplemente reemplace target :

 .addFields( { name: 'ID', value: target.id }, { name: 'Joined Server', value: `<t:${parseInt(targetMember.joinedTimestamp / 1000, 10)}:R>`, inline: true, }, { name: 'Account Created', value: `<t:${parseInt(target.createdTimestamp / 1000, 10)}:R>`, inline: true, }, );

PD: es una buena idea usar el radix en parseInt . Es por eso que agregué 10 como segundo parámetro en parseInt .

about 4 years ago · Juan Pablo Isaza Report

0

¿Podría verificar el tipo de target.joinedTimestamp ?

Podría ser que la doble conversión que estás haciendo aquí:

 parseInt(target.joinedTimestamp / 1000)

destruyó tu número.

(Está convirtiendo lo que sea target.createdTimestamp en número, dividiéndolo por 100 (lo que lo convierte en un número de punto flotante) y luego descartando el punto flotante convirtiéndolo de nuevo a int).

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!