Curso de JavaScript desde cero

Las fechas de JavaScript: guía de iniciación

Capítulo 45: Introducción a las fechas de JavaScript

Comenzamos tema nuevo, las fechas en JavaScript.

El objeto Date()

En JavaScript tenemos el objeto integrado Date(), el cual nos sirve para trabajar con fechas.

Palabra del lenguaje nº 58 encontrada.
Date() es un objeto integrado de JavaScript que nos permite manejar fechas.

Podemos instanciar objetos de Date() de esta forma:

let ahora = new Date();

Si omitimos el uso de la palabra new, nos crea un string con la fecha y no un objeto, lo cual, hace que tengamos acceso a los métodos predefinidos de String, pero no de Date().

Veamos el tipo de dato que devuelven ambos:

let fechaString = Date();
let fechaDate = new Date();

console.log(typeof fechaString);
console.log(typeof fechaDate);
string
object

Date() sin argumentos devuelve la fecha en el momento de la ejecución. Por lo tanto, si vas recargando el navegador, esta va cambiando.

let ahora = new Date();
Sun Feb 27 2022 17:35:11 GMT+0100 (hora estándar de Europa central)

Milisegundos en fechas

Si le damos al objeto un primer argumento de tipo numérico, estamos estableciendo una cantidad de milisegundos desde el 1 de enero de 1970.

Cada mil milisegundos equivalen a 1 segundo, por lo tanto, si ponemos 1000 milisegundos, nos muestra un segundo más de esa fecha que tiene JavaScript por defecto.

let fecha = new Date(1000);

console.log(fecha);
Thu Jan 01 1970 01:00:01 GMT+0100 (hora estándar de Europa central)

Voy a escribir una serie de constantes que se pueden utilizar en fechas. Yo las voy a empezar a utilizar con la fecha por defecto de JavaScript.

const segundoMilisegundos = 1000; // 1.000 ms (1 s)
const minutoMilisegundos = 60 * segundoMilisegundos; // 60.000 ms (60 s)
const horaMilisegundos = 60 * minutoMilisegundos; // 3.600.000 ms (3600 s)
const diaMilisegundos = 24 * horaMilisegundos; // 86.400.000 ms (86.400 s)

let fecha1 = new Date(segundoMilisegundos);
let fecha2 = new Date(minutoMilisegundos);
let fecha3 = new Date(horaMilisegundos);
let fecha4 = new Date(diaMilisegundos);

console.log("Añado un segundo a la fecha por defecto de JS:\n" + fecha1);
console.log("Añado un minuto a la fecha por defecto de JS:\n" + fecha2);
console.log("Añado una hora a la fecha por defecto de JS:\n" + fecha3);
console.log("Añado un día a la fecha por defecto de JS:\n" + fecha4);
Añado un segundo a la fecha por defecto de JS:
Thu Jan 01 1970 01:00:01 GMT+0100 (hora estándar de Europa central)
Añado un minuto a la fecha por defecto de JS:
Thu Jan 01 1970 01:01:00 GMT+0100 (hora estándar de Europa central)
Añado una hora a la fecha por defecto de JS:
Thu Jan 01 1970 02:00:00 GMT+0100 (hora estándar de Europa central)
Añado un día a la fecha por defecto de JS:
Fri Jan 02 1970 01:00:00 GMT+0100 (hora estándar de Europa central)

Podemos sumar incluso estas fechas (no solo a la fecha por defecto de JavaScript), por ejemplo, quiero añadir a la fecha diez días. Esto ya es algo más útil.

let fecha = new Date(diaMilisegundos * 10);

console.log(fecha);
Sun Jan 11 1970 01:00:00 GMT+0100 (hora estándar de Europa central)

También podemos restar cantidades a las fechas así de fácil:

let fecha = new Date(-diaMilisegundos * 10);

console.log(fecha);
Mon Dec 22 1969 01:00:00 GMT+0100 (hora estándar de Europa central)

Fechas personalizadas

Por supuesto, JavaScript nos deja trabajar con cualquier fecha, no solo con la que nos da por defecto.

let fecha = new Date("2022-09-29");

console.log(fecha);
Thu Sep 29 2022 02:00:00 GMT+0200 (hora de verano de Europa central)

Por defecto, me muestra siempre la fecha de esta forma, y si no le doy algún valor como la hora, me pone esa automáticamente (la que está en el resultado de la consola).

Argumentos en la fecha de JavaScript

Podemos especificar argumentos separados para cada sección de una fecha. Esto se hace con tipo number.

Si ponemos un solo número, ya sabemos que nos va a interpretar esto como milisegundos:

let fecha = new Date(2022);

console.log(fecha);
Thu Jan 01 1970 01:00:02 GMT+0100 (hora estándar de Europa central)

Por lo tanto, tenemos que indicarle un mínimo de dos argumentos a la fecha.

let fecha = new Date(2022,11);

console.log(fecha);

De esta forma, lo que hacemos es indicarle el año y el mes.

¿Te has fijado que le he puesto el mes 11 y me sale como diciembre?

No es un error, JavaScript cuenta los meses del 0 (enero) al 11 (diciembre).

Thu Dec 01 2022 00:00:00 GMT+0100 (hora estándar de Europa central)

Si añadimos un tercer parámetro podremos indicar el día:

let fecha = new Date(2022,11,25);

console.log(fecha);
Thu Dec 25 2022 00:00:00 GMT+0100 (hora estándar de Europa central)

Con otro parámetro más indicaremos la hora en formato 24 horas:

let fecha = new Date(2022,11,25,19);

console.log(fecha);
Sun Dec 25 2022 19:00:00 GMT+0100 (hora estándar de Europa central)

Con un parámetro más añadimos los minutos:

let fecha = new Date(2022,11,25,19,37);

console.log(fecha);
Sun Dec 25 2022 19:37:00 GMT+0100 (hora estándar de Europa central)

Incluso podemos añadir los segundos con otro parámetro más:

let fecha = new Date(2022,11,25,19,37,15);

console.log(fecha);
Sun Dec 25 2022 19:37:15 GMT+0100 (hora estándar de Europa central)

Aun queda un parámetro extra para añadir incluso los milisegundos:

let fecha = new Date(2022,11,25,19,37,15,1000);

console.log(fecha);

No obstante, estos no se muestran, solo hacen avanzar los segundos equivalentes al tiempo en milisegundos. Por ejemplo, al añadir 1000 milisegundos, he hecho pasar los segundos de 15 a 16.

Sun Dec 25 2022 19:37:16 GMT+0100 (hora estándar de Europa central)

Ejercicios de JavaScript

  1. Escribe la siguiente fecha utilizando argumentos numéricos: Sun Apr 07 2030 00:00:00 GMT+0200 (hora de verano de Europa central).
  2. Escribe la siguiente fecha utilizando argumentos numéricos: Wed Aug 17 1667 08:45:28 GMT-0014 (hora de verano de Europa central).
  3. Dependiendo de la zona donde estés, esto, "GMT+0200 (hora de verano de Europa central)" aparecerá diferente, ignora esa parte en las soluciones.

La solución la encontrarás aquí: Ejercicios resueltos de JavaScript.


Comentarios

Si te quedan dudas sobre el temario, sobre JavaScript o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.

Twitter

Programación Fácil YouTube

Suscríbete

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.