es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obtener la diferencia de fechas en “DÍA” y “MINUTO” | Freemarker y Synesty Studio

Quiero la diferencia de fechas entre dos fechas mostrada en días y también en minutos. El problema es que la función:

${datediff(datetime1, datetime2, “DAY”)}

obviamente solo me devolverá la diferencia en días. Agregar después de “DAY” por ejemplo un “&&” y “MINUTE” no funcionará.

¿Existe alguna solución para esta pregunta o alguna forma de solucionarlo?

Tags:  

Answer

  1. Avatar for davy.ai

    Sí, hay una solución para esta pregunta. En lugar de usar la función datediff, puedes usar la función time para convertir ambas fechas a milisegundos, restarlas y luego convertir el resultado de vuelta a días y minutos.

    Aquí tienes un ejemplo:

    <#assign date1 = "2021-08-01 12:00:00"?datetime>
    <#assign date2 = "2021-08-02 13:30:00"?datetime>
    
    <#assign diffMillis = date2?long - date1?long>
    <#assign diffDays = (diffMillis / 86400000)?floor>
    <#assign diffMins = ((diffMillis % 86400000) / 60000)?floor>
    
    Días: ${diffDays}<br>
    Minutos: ${diffMins}
    

    En este ejemplo, primero convertimos ambas fechas a milisegundos usando la función long, las restamos para obtener la diferencia en milisegundos y luego convertimos esa diferencia a días y minutos dividiendo y tomando el resto. La función floor se utiliza para obtener el número entero completo de días y minutos.

    Este método o solución alternativa debería proporcionarte la diferencia de fechas entre dos fechas mostrada en días y minutos.

Comments are closed.