Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

160
Vistas
span textContent split devuelve indefinido en la función javascript

Estoy tratando de ayudar a un amigo con el siguiente javascript. Ambos somos nuevos en javascript.

Estamos tratando de convertir la cadena de fecha a un formato diferente. Según la búsqueda en Internet, entendemos que la función de fecha espera que la cadena de entrada tenga el formato Fecha (año, mes, día). Para lograr eso, necesitamos analizar la cadena de entrada y enviarla en el formato esperado. No tenemos ni idea de por qué la división de cadenas en el contenido de texto de la etiqueta span (que contiene la cadena de fecha) no funciona.

 <script type="text/javascript"> function ready(callback){ if (document.readyState!='loading') callback(); else if (document.addEventListener) document.addEventListener('DOMContentLoaded', callback); else document.attachEvent('onreadystatechange', function(){ if (document.readyState=='complete') callback(); }); } window.onload = ready(function() { var dateString = document.getElementById("dateFormatter").textContent.trim(); var sMonth = dateString.split("/")[0]; var sDay = dateString.split("/")[1]; var sYear = dateString.split("/")[2]; document.getElementById("dateFormatter").textContent=sMonth; }); </script>

El html tiene la siguiente etiqueta de intervalo.

 <span id="dateFormatter">26/06/1993</span>

sMonth devuelve 26/06/1993, mientras que sDay y sYear devuelven indefinidos.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

La cadena de su div tiene un formato no válido si desea convertirla en una cadena de fecha. Una cadena válida sería: aaaa-mm-dd. Si ya tiene un objeto de fecha, puede usar la función para formatear la fecha.

Como eso:

Actualizar

 callback(); window.addEventListener('load', function () { var dateString = document.getElementById("dateFormatter").textContent.trim(); console.log(dateString) let dateArr = dateString.split("/"); var sDay = dateArr[0]; var sMonth = dateArr[1]; var sYear = dateArr[2]; let newDateString = (sYear + '-' + sMonth + '-' + sDay); let d = new Date(newDateString); console.log(d); document.getElementById("dateFormatter").textContent=d.toLocaleString(); });
 <span id="dateFormatter">26/06/1993</span>

fragmento antiguo

 function ready(callback) { if (document.readyState!='loading') callback(); else if (document.addEventListener) document.addEventListener('DOMContentLoaded', callback); else document.attachEvent('onreadystatechange', function(){ if (document.readyState=='complete') callback(); }); } window.onload = ready(function() { var dateString = document.getElementById("dateFormatter").textContent.trim(); console.log(dateString) let dateArr = dateString.split("/"); var sDay = dateArr[0]; var sMonth = dateArr[1]; var sYear = dateArr[2]; let newDateString = (sYear + '-' + sMonth + '-' + sDay); let d = new Date(newDateString); console.log(d); document.getElementById("dateFormatter").textContent=d; });
 <span id="dateFormatter">26/06/1993</span>

about 4 years ago · Juan Pablo Isaza Denunciar

0

El problema es que está configurando el contenido de texto del lapso para que solo muestre el valor de sMonth y cuando eso suceda, el lapso solo tendrá "26" como su cuerpo (que por cierto es incorrecto si escribe fechas así) - y en realidad no debería ser "26/06/1993" si el código es correcto.

Además, si desea ejecutar la secuencia de comandos varias veces, intente establecer el contenido de texto del tramo en sDay+"/"+sMonth+"/"+sYear para que tenga el mismo formato con el que espera que funcione la secuencia de comandos. El código que proporcionó establece el valor del lapso en "26", luego, si lo ejecuta nuevamente, intenta dividir "26" a lo largo de "/", lo que, por supuesto, termina siendo incorrecto.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda