Fecha y hora en JavaScript

En JavaScript, existe un objeto integrado llamado Date para manejar todas las operaciones relacionadas con la fecha y la hora. Por ejemplo, puedes utilizarlo para mostrar la fecha y hora actuales, crear un calendario, construir un temporizador y mucho más.

Cómo Crear un Objeto Date

Para aprender cómo crear un nuevo objeto Date, sigue los siguientes pasos.

Nota que el operador new generalmente se utiliza para crear un objeto date.

Llama a new Date () eligiendo uno de los siguientes argumentos:

new Date()

Puedes crear un objeto Date para la fecha y hora actuales sin argumentos de esta manera:

Create Date object javascript
let nowDate = new Date(); console.log(nowDate); // shows current date/time

Esta acción devuelve la fecha actual con la hora y la zona horaria.

Podemos distinguir otras formas de crear una Fecha usando el operador new.

Nueva Fecha con Milisegundos

Creando un objeto Date con el tiempo igual al número de milisegundos transcurridos después del 1 de enero de 1970 UTC+0.

Aquí hay un ejemplo:

Date object javascript
// 0 means 01.01.1970 UTC+0 let startDate = new Date(0); console.log(startDate); // now add 24 hours, get 02.01.1970 UTC+0 let startTime = new Date(24 * 3600 * 1000); console.log(startTime);

En este ejemplo, se utiliza un sello de tiempo para representar el número de milisegundos transcurridos desde el comienzo de 1970.

Creando Objeto Date Usando dateString

Es posible crear un objeto Date pasando la representación de la fecha en formato cadena. La representación en cadena será aceptada en caso de que pueda ser analizada usando Date.parse().

Aquí hay un ejemplo:

Date object javascript
let date = new Date("2019-12-26"); console.log(date); //The isn't a fixed time, so it's expected to be midnight GMT and // is modified according to the timezone, in which the code is run // So the result could be // Thu Dec 26 2019 04:00:00 GMT+1100 (Australian Eastern Daylight Time)

El siguiente formato es aceptable: new Date(año, mes, fecha, horas, minutos, segundos, ms). También debes seguir estas reglas:

  • El año debe consistir en cuatro dígitos (por ejemplo, 2020);
  • La cuenta del mes debe comenzar desde 0 (Por ejemplo, 0 es enero y 11 es diciembre);
  • El día del mes es el parámetro fecha; si está ausente, debes asumir 1.
  • En caso de que se ausentes horas/minutos/segundos/ms, debes asumir que son igual a 0.

Por ejemplo:

new Date(2019, 0, 1, 0, 0, 0, 0); // 1 Jan 2019, 00:00:00
new Date(2019, 0, 1); // the same, hours etc are 0 by default

La precisión mínima debe ser de un milisegundo.

Por ejemplo:

Date object javascript
let date = new Date(2019, 1, 1, 2, 3, 4, 567); console.log(date);

Acceder a los Componentes de la Fecha

Ahora, descubriremos las formas de acceder a los componentes de data. Aquí están:

getFullYear()

Obtener el año (debe ser de 4 dígitos).

getMonth()

Obtener el mes (de 0 a 11).

getDate()

Obtener el día del mes (de 1 a 31).

getHours(),
 getMinutes(),
 getSeconds(),
 getMilliseconds()

Obtener los componentes de tiempo correspondientes.

Es esencial usar getFullYear(), no getYear(), ya que este último es obsoleto y puede devolver un año de 2 dígitos a veces. Por lo tanto, es mejor que nunca lo uses en tu práctica.

Además, incluso se puede obtener un día de la semana llamando a:

getDay()

Esto te permitirá obtener un día de la semana desde el domingo 0 hasta el sábado 6.

Cómo Configurar los Componentes de la Fecha

En JavaScript, hay varios métodos que se utilizan para configurar los componentes de fecha y hora. Entre ellos están:

setFullYear(year, [month], [date])
setMonth(month, [date])
setDate(date)
setHours(hour, [min], [sec], [ms])
setMinutes(min, [sec], [ms])

Algunos métodos pueden configurar varios componentes simultáneamente. Por ejemplo, setHours.

Aquí hay un ejemplo:

Set date and time object javascript
let today = new Date(); today.setHours(0); console.log(today); // still today, but the hour is changed to 0 today.setHours(0, 0, 0, 0); console.log(today); // still today, now 00:00:00 sharp.

Autocorrección

Una característica útil de los objetos Date es la autocorrección. Puedes establecer valores que están fuera de rango y se ajustarán automáticamente.

Por ejemplo:

Set date and time object javascript
let date = new Date(2019, 8, 32); // 32 Sep 2019 console.log(date);

Fecha a Número, Diferencia entre Fechas

Cuando conviertes una Date a número, se transforma en el sello de tiempo, como date.getTime().

Consideremos el siguiente ejemplo:

Set date and time object javascript
let msDate = new Date(); console.log(+msDate); // it's a same as date.getTime(), it's the number of milliseconds

Es importante también notar que las fechas se pueden restar. Puedes utilizarlo para mediciones, como se muestra a continuación:

Date object in javascript
let startDate = new Date(); // start measuring time for (let x = 0; x < 10000; x++) { let smth = x * x * x; } let endDate = new Date(); // end measuring time console.log(`The loop took ${endDate - startDate} ms`);

Date.now()

Si decides medir el tiempo, no es necesario usar el objeto Date. Puedes usar Date.now(), que devolverá el sello de tiempo actual.

Por ejemplo:

Date object in javascript
let startDate = Date.now(); // milliseconds count from 1 Jan 1970 for (let x = 0; x < 10000; x++) { let doSomething = x * x * x; } let endDate = Date.now(); console.log(`The loop took ${endDate - startDate} ms`);

Date.parse A Partir de una Cadena

Si deseas leer una fecha a partir de una cadena, Date.parse(str) te ayudará. El formato de la cadena debe ser: MM-DDTHH:mm:ss.sssZ. También son posibles algunas opciones más cortas: YYYY-MM-DD o YYYY-MM o incluso YYYY.

Aquí hay un ejemplo de uso de Date.parse(str):

Date object in javascript
let ms = Date.parse('2019-02-28T14:52:20.254-08:00'); console.log(ms); // 1551394340254, it’s a timestamp

Se puede crear instantáneamente un new Date a partir del sello de tiempo, así:

Date parse in javascript
let date = new Date(Date.parse('2019-02-28T14:52:20.254-08:00')); console.log(date);

Resumen

En JavaScript, el objeto Date se utiliza para representar la fecha y la hora. El objeto Date incluye ambas. Como regla general, los meses se cuentan desde cero y terminan en 11. Los días de la semana también se cuentan a partir de cero. En JavaScript, se pueden restar las fechas y proporcionan su diferencia en milisegundos, ya que una Date se convierte en sello de tiempo cuando se convierte a un número. Finalmente, a diferencia de otros sistemas, en JavaScript, los sellos de tiempo están en milisegundos, no en segundos.

Hora del Cuestionario: ¡Pon a Prueba Tus Habilidades!

¿Listo para desafiar lo que has aprendido? Sumérgete en nuestros cuestionarios interactivos para una comprensión más profunda y una forma divertida de reforzar tu conocimiento.

¿Te resulta útil?