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.
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.
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.
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.
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.
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.
El código no es nada si no se ejecuta. En mi caso lo ejecuté en la consola del navegador con estos resultados:
Como vemos, los resultados son correctos. Únicamente sería cosa de formatear esa fecha para tener, por ejemplo, algo como “2018-10-08”.
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…
Esta web usa cookies.