Me gustaría saber cómo puedo ordenar las fechas en JavaScript que contienen valores separados por comas en un orden diferente, por ejemplo
var dates = "6/11/2015, 6/1/2015, 6/22/2015, 6/7/2015, 5/11/2015";Quiero ordenar fechas por fechas más recientes como,
var dates2 = "5/11/2015, 6/1/2015, 6/7/2015, 6/11/2015, 6/22/2015";Su ayuda será apreciada. Gracias
Puede dividir la cadena para obtener una matriz, ordenarlos pasando cada cadena al constructor Date y luego volver a unirlos.
let dates = "6/11/2015, 6/1/2015, 6/22/2015, 6/7/2015, 5/11/2015"; let res = dates.split(", ").sort((a,b)=>new Date(a) - new Date(b)).join(", "); console.log(res);En mi opinión, esto podría hacerse fácilmente usando split() para extraer cada día, mes, año y luego, usar esos valores para construir objetos de fechas. Finalmente, comparas y ordenas esas fechas.
const splitDatesByComma = dates.split(',').map((el) => el.trim()) const dates = splitDatesByComma.map((el) => { const splitDate = el.split('/') // Create a Date for splitted string. Month is 0 based return new Date(splitDate[2], splitDate[1] - 1, splitDate[0], 0, 0, 0, 0) }) const sortDatesDescending = dates.sort((dateA, dateB) => { if (dateA > dateB) { return -1 } if (dateA < dateB) { return 1 } return 0 }) // Format sorted dates to string and join them. const datesFormattedAndSorted = sortDatesDescending.map((date) => { return `${date.getDate()}/${date.getMonth() + 1}/${date.getFullYear()}` }) console.log(datesFormattedAndSorted.join(', '))Hice esto en CodePen con Vue si alguien está interesado: https://codepen.io/LucasFer/pen/mdMmqrN