Necesito convertir los datos obtenidos por el backend "17:00" a "5pm". Usando el moment que acabo de hacer:
moment('17:00', ['HH']).format('h:mma') ¿Cómo lograr lo mismo con Luxon ? Si bien el moment permite formatear las horas directamente, parece que lasfunciones de formato de Luxon requieren una fecha (que no tengo).
¿Cualquier sugerencia?
DateTime.fromISO('17:00').toLocaleString(DateTime.TIME_SIMPLE) // 5:00 PM DateTime.fromISO('17:00').toFormat('h:mma') // 5:00PM DateTime.fromISO('17:00').toFormat('h:mm a') // 5:00 PM aunque no pude averiguar cómo hacer meridem en minúsculas
https://github.com/moment/luxon/issues/224
EDITAR si quiere en minúsculas puede hacer algo como esto
const DateTime = luxon.DateTime; const dt = DateTime.fromISO('17:00') const meridiem = (dt.hour > 11) ? 'p' : 'a' const final = `${dt.toFormat('h:mm')}${meridiem}m` console.log(final) <script src="https://cdnjs.cloudflare.com/ajax/libs/luxon/2.3.1/luxon.min.js"></script> ACTUALIZAR como Lukas H. mencionó en los comentarios, un enfoque más fácil sería usar .toLowerCase()
const DateTime = luxon.DateTime; const dt = DateTime.fromISO('17:00') const final = dt.toFormat('h:mma').toLowerCase() console.log(final) <script src="https://cdnjs.cloudflare.com/ajax/libs/luxon/2.3.1/luxon.min.js"></script>