Esta entrada es la continuación de: Manejo de fechas en Javascript :: Introducción, para esta práctica utilizaremos una de las librerías más conocidas para manejar fechas en Javascript, MomentJS.
Moment JS
Nos sirve para analizar, validar, manipular y desplegar fechas en Javascript. Para esta práctica nos descargaremos 2 archivos, moment.js y moment-with-locales.js del sitio oficial: https://momentjs.com/.

<script src="moment.js"></script>
<script src="moment-with-locales.js"></script>
<script>
    //Por defecto moment esta en inglés, si incluimos el script moment-with-locale.js podemos definir el idioma en que queremos la respuesta
    moment.locale('es');

    var fechaUno = Date.parse("2017-02-03 20:48:00"); //Formato YYYY-MM-DD hh:mm:ss
    var fechaDos = Date.parse(new Date()); //Captura el momento actual en el mismo formato

    /** FORMATOS DE FECHA*/
    moment(fechaUno).format('MMMM Do YYYY, h:mm:ss a'); //febrero 3 2017, 8:48:00 pm
    console.log(moment(fechaUno).format('dddd')); //viernes
    console.log(moment(fechaUno).format('MMM Do YY')); //feb. 3 17
    console.log(moment().format()); //Si no especificamos parámetro: 2017-03-02T20:58:44-06:00

    /** TIEMPO RELATIVO */
    //Con el método fromNow() nos regresa la diferencia de tiempo del momento actual al momento especificado
    console.log(moment(fechaDos).fromNow()); //hace unos segundos
    //Además podemos pasar como parámetro 'day' u 'hour' para especificar en que unidades queremos esa diferencia
    console.log(moment(fechaDos).startOf('hour').fromNow()); //hace 12 minutos

    //Con el método endOf() podemos pedir la diferencia entre el momento actual y el fin del día
    console.log(moment().endOf('hour').fromNow()); //en 44 minutos
    console.log(moment().endOf('day').fromNow()); //en 3 horas
    console.log(moment(fechaDos).endOf('month').fromNow()); //en un mes (no es muy especifico xd)
    console.log(moment(fechaDos).endOf('year').fromNow()); //en 10 meses (no es muy especifico xd)

    /** TIEMPO EN FORMATO CALENDARIO */
    console.log(moment().calendar()); //hoy a las 21:24
    console.log(moment(fechaUno).calendar()); //03/02/2017
    console.log(moment(fechaDos).add(1, 'days').calendar()); //Mañana a las 21:24
    console.log(moment(fechaDos).add(10, 'days').calendar()); //12/03/2017

    console.log(moment(fechaDos).subtract(10, 'days').calendar()); // 20/02/2017

    /** TIEMPO EN FORMATO COMÚN */
    console.log(moment().format('LT')); //13:35
    console.log(moment().format('LTS')); //13:35:50

    //Entre más l o L definamos más especifica será la fecha retornada
    console.log(moment().format('L')); //03/03/2017
    console.log(moment().format('l')); //03 de mar. de 2017
    console.log(moment().format('LL')); //03 de marzo de 2017
    console.log(moment().format('ll')); //03 de mar. de 2017
    console.log(moment().format('LLL')); //03 de marzo de 2017 13;37
    console.log(moment().format('lll')); //03 de mar. de 2017 13:37
    console.log(moment().format('LLLL')); //vernes, 3 de marzo de 2017 13;37
    console.log(moment().format('llll')); //vie., 3 de mar. de 2017 13:37


</script>

 

Si entran a la página oficial verán que solo estoy explicando de forma detallada los mismos ejemplos que la página proporciona. Si tienes algún problema al llamar las librerías pueden ver el repositorio del blog donde he subido este mismo ejemplo: https://github.com/eichgi/blog-hoclabs.
Si tienen alguna duda, comentario o aclaración no duden en escribirla debajo!

Leave a Reply