Así que estoy obteniendo algunas fechas de mi backend.
Solo necesito la fecha (sin la hora) y el formato debe ser relativo a la configuración del navegador del usuario.
He elegido este enfoque:
function dateFormatter(params) { if (!params.value || params.value == 'None') return '' return new Date(params.value).toLocaleString(undefined, options = { year: 'numeric', month: 'numeric', day: '2-digit' }); }Hasta aquí todo bien. Está funcionando bien. Pasar undefined como el primer parámetro hace que tome cualquier configuración regional que esté usando el usuario.
El problema es que ahora, para esas cadenas devueltas por esta función, necesito un comparador. Algo como esto:
filterParams: { // provide comparator function comparator: (filterLocalDateAtMidnight, cellValue) => { const dateAsString = cellValue; if (dateAsString == null) { return 0; } // In the example application, dates are stored as dd/mm/yyyy // We create a Date object for comparison against the filter date const dateParts = dateAsString.split('/'); const day = Number(dateParts[2]); const month = Number(dateParts[1]) - 1; const year = Number(dateParts[0]); const cellDate = new Date(year, month, day); // Now that both parameters are Date objects, we can compare if (cellDate < filterLocalDateAtMidnight) { return -1; } else if (cellDate > filterLocalDateAtMidnight) { return 1; } return 0; }¿Cómo puedo implementar este comparador? Debido a que mi formato de fecha es dinámico según el usuario, no puedo simplemente dividir partes de fecha [] como lo hace este ejemplo.
Gracias.