Obtuve el siguiente HTML donde los elementos de intervalo son generados por campos personalizados avanzados:
<div class="container-dates"> <span class="start_date">20220218</span> <span class="end_date">20220319</span> </div> <div class="container-dates"> <span class="start_date">20220218</span> <span class="end_date">20220319</span> </div>La salida en los cuatro elementos de intervalo supuestamente son fechas, por lo que usé moment.js para convertirlos a un formato de fecha adecuado.
time = document.getElementsByClassName("start_date")[0] var datestart = moment(time.innerHTML).format('DD MMMM YYYY'); time.innerHTML = datestart Hice lo mismo para end_date. Muestra los dos elementos de intervalo en el primer .container-dates como se esperaba.
<span class="start_date">18 February 2022</span> <span class="end_date">19 March 2022</span>Pero deja los elementos span en el segundo .container-dates como estaban. El objetivo es lograr que todas las fechas se conviertan al formato correcto. Intenté usar querySelector y también probé el siguiente código, según la respuesta en la pregunta SO 40544845 :
time = document.getElementsByClassName("start_date"); for (var i=0; i<time.length; i++) { var datestart = moment(time.innerHTML).format('DD MMMM YYYY'); } time.innerHTML = datestartAmbos no están funcionando. ¿Alguien puede ayudar?