Fecha de ayer y de mañana en JavaScript

Introducción

Ya vimos cómo saber la fecha de mañana en PHP. Veamos hoy cómo podemos saber la fecha de ayer y la fecha de mañana en JavaScript.

Usaremos la clase Date y algunas operaciones matemáticas simples.

Fecha de ayer y fecha de mañana en JavaScript
Fecha de ayer y fecha de mañana en JavaScript

Fecha de ayer y mañana en JS

Antes de nada, dejo la documentación oficial de la clase Date aquí.

Eso es por si quieres formatearla, ya que un objeto de esa clase no está formateado.

Puedes llamar a los métodos getYear, getMonth, getDate, entre otros e ir concatenándolos o usándolos de acuerdo a tus necesidades.

Algoritmo general

Con PHP vimos que se suman y restan segundos. Con JavaScript será lo mismo pero en milisegundos.

Todas las fechas que existen (o bueno, todas después de 1970) se pueden representar con un número entero positivo, el cual es llamado tiempo Unix.

Este tiempo empieza el 1 de enero de 1970, o sea que el 1 de enero de 1970 a las 00:00:01 había pasado un segundo, lo que serían mil milisegundos. Imagina cuántos millones de milisegundos han pasado desde ese tiempo hasta ahora.

Pues el tiempo en milisegundos no debe preocuparnos, simplemente lo usaremos para hacer sumas. Si obtenemos ese tiempo en un instante, y le sumamos o restamos un día, podemos saber la fecha de distintos tiempos.

Es decir, si por ejemplo el tiempo del 5 de octubre del 2018 es 1500, y un día en milisegundos equivale a 10, hacemos la suma y tendremos 1510 milisegundos, y a este número más tarde lo pasamos a un objeto fecha para poder sacarle toda la información como el año, mes, etcétera.

Obviamente lo de arriba es un ejemplo para hacer fáciles las operaciones, en realidad el tiempo en milisegundos justo ahora es 1538750815776 y un día expresado en esa unidad de medida es 86400000.

Por cierto, antes de continuar te recomiendo leer:

Diferencias entre let, var y const

Funciones flecha en JavaScript

Son artículos de programación que te ayudarán a entender el código de abajo. Esas funciones son los nuevos estándares de JS y recomiendo aprenderlos.

Saber la fecha de mañana en JavaScript

Basta de charlas, hora del código. Ponemos todo en una función, dicha función no recibe nada y devuelve una instancia de la clase Date, es decir, un objeto.

const fechaDeManana = () => {
    let hoy = new Date();
    let DIA_EN_MILISEGUNDOS = 24 * 60 * 60 * 1000;
    let manana = new Date(hoy.getTime() + DIA_EN_MILISEGUNDOS);
    return manana;
};

Obtenemos la fecha de hoy, le sumamos los milisegundos de un día, y creamos un nuevo objeto de tipo Date utilizando el constructor que recibe un entero con milisegundos. Finalmente lo regresamos.

Fecha de ayer en JavaScript

Es casi lo mismo de arriba pero restamos en lugar de sumar. Queda así:

const fechaDeAyer = () => {
    let hoy = new Date();
    let DIA_EN_MILISEGUNDOS = 24 * 60 * 60 * 1000;
    let ayer = new Date(hoy.getTime() - DIA_EN_MILISEGUNDOS);
    return ayer;
}

Es exactamente lo mismo que arriba, únicamente cambiamos el operador para realizar una resta.

En Node.JS

Si queremos implementar este código en Node.JS, o sea, JS en el lado del servidor, te recomiendo leer cómo ajustar las fechas de JavaScript, ya que te dará resultados inesperados por las zonas horarias.

En caso de que lo ejecutes del lado del cliente, nada debería preocuparte.

Llamada a la función

El código no es nada si no se ejecuta. En mi caso lo ejecuté en la consola del navegador con estos resultados:

Llamada a la función de javascript
Llamada a la función de javascript

Como vemos, los resultados son correctos. Únicamente sería cosa de formatear esa fecha para tener, por ejemplo, algo como “2018-10-08”.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *