Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

156
Visualizações
¿La función IF está eliminando el objeto de fecha en javascript?

Pasé una hora buscando respuestas y probando cosas diferentes, así que agradezco cualquier ayuda aquí.

El siguiente código funciona muy bien para encontrar la fecha de vigencia de la parte B de alguien. Sin embargo, cuando el cumpleaños de alguien es realmente el 1 de un mes, se usa la función 'si', y ya no puedo formatear ni escribir la fecha. Es casi como si 'partB_eff' ya no fuera un objeto de fecha. (Soy un novato, así que podría estar inventando esta parte).

Recibo el error "TypeError: partB_eff.toLocaleDateString no es una función en AutoFill_6_Step_Checklist (Código: 24:27)"

¿Cómo puedo resolver esto?

 let birthday = new Date(e.values[2]); //this is a date entered from a google form let bdayCopy = new Date(birthday); //I created this since I'll be using .setMonth(), and I don't want to change the original date of the birhtday let bday65 = new Date(bdayCopy.setMonth(bdayCopy.getMonth()+780)); //finds the 65th birthday let partB_eff = new Date(bdayCopy.setDate(01)); //find's the Medicare part B effective date (the 1st of the month someone turns 65) if(birthday.getDate()==1){ partB_eff = partB_eff.getMonth-1; //if the person's birthday is really on the 1st of the month, the part b effective date is the 1st of the month prior. partB_eff must be converted } partB_eff = partB_eff.toLocaleDateString('en-us',{year:"numeric",month: "short",day:"numeric"}); //format partB_eff so that it looks nice on paper
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

partB_eff = partB_eff.getMonth-1;

No hace lo que crees que hace. Lo que hace es obtener la función vound getDate de su objeto de fecha e intentar restarle uno. En cualquier otro idioma, tratar de restar una función sería un error de tipo, pero Javascript es Javascript y permite operaciones numéricas en casi cualquier tipo. Una función menos un número en JS es NaN . NaN no tiene un método llamado toLocaleString , de ahí el error.

Lo que es interesante es que hiciste la misma operación correctamente arriba con bdayCopy.setMonth(bdayCopy.getMonth()+780) Simplemente haz lo mismo aquí

 bdayCopy = new Date(bdayCopy.setMonth(bdayCopy.getMonth()-1));

También algunos conceptos importantes. if en Javascript no es una función. if es una palabra clave que inicia una declaración condicional. No puede hacer ninguna de las cosas que puede hacer con una función con if. No puede llamarlo o asignarlo a una variable o pasar ot como un argumento de función. Claramente, comprender qué es una función es algo que debe hacer para poder trabajar en JS o, francamente, en cualquier otro idioma.

Finalmente, si está haciendo matemáticas de fechas en JS, le recomiendo que use una biblioteca de fechas como DateFns o Moment. Las API de fecha nativa de Javascript son posiblemente la API de fecha peor diseñada de cualquier idioma.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda