Objeto Date

El objeto Date contiene un valor que representa fecha y hora de un instante dado. Para crear una instancia de este objeto usamos alguna de las siguientes sintaxis:

Los argumentos encerrados entre corchetes son opcionales.

  • En la primera forma la variable fecha contendrá la fecha del día actual.
  • La segunda opción almacena en fecha la fecha dada por el argumento como el número de milisegundos transcurridos desde la media noche del 1 de Enero de 1970.
  • El tercer tipo se usa cuando la fecha se pasa en forma de cadena. Por último la fecha puede crearse pasándole como argumento los números de año, mes, día, hora y opcionalmente, hora, minuto, segundo y milisegundo.

Los años posteriores a 1970 puede escribirse con dos dígitos, pero es aconsejable usar siempre cuatro dígitos.

Estas son tres posibles formas de declarar objetos de tipo fecha. Las dos últimas almacenan el mismo día, pero en la última además se guarda la hora. Donde se usen cadenas para indicar una fecha podemos añadir al final las siglas GMT (o UTC) para indicar que la hora se refiere a hora del meridiano Greenwich, si no se toma como hora local, o sea, según la zona horaria configurada en el ordenador donde se ejecute el script.

Métodos

getDate().- Nos devuelve el día del mes del objeto fecha al que se aplica. Este método controla por supuesto el número de días de cada mes y contempla el caso de años bisiestos, incluida la excepción del 2000. En el siguiente ejemplo se presenta en pantalla Hoy es día 27, calculada en la fecha del sistema en ese instante (27-05-2018). Primero creamos la variable fecha instanciada como un objeto Date() para a continuación escribir directamente el valor de getDate() aplicado a fecha.

El resultado sería:

getDay().- Nos devuelve el día de la semana del objeto fecha al que se aplica en forma numérica con una cifra entre 0 para el domingo y 6 para el sábado. En el siguiente ejemplo se presenta en pantalla Hoy es 0, suponiendo que la fecha del sistema es 27-Mayo-2018, o sea, domingo. Primero creamos la variable fecha instanciada como un objeto Date() para a continuación escribir directamente el valor de getDay() aplicado a fecha.

Vemos el resultado:

Nos ha mostrado la cifra 0 que equivale al domingo. Pero vamos a mejorarlo aprovechandonos de los arrays:

Ahora se obtendría la más amigable frase Hoy es domingo (según la fecha cuando se hizo este tutorial 27 de mayo 2018).

getMonth().- Nos devuelve en forma numérica el mes correspondiente al objeto fecha al que se aplica. Así para la fecha correspondiente al 10/Oct/2000, esta función nos dará 10, el
número de orden de Octubre. Por ejemplo crearemos la variable fecha instanciada como un objeto Date().

Teniendo en cuenta mi fecga actual creando esta seccion (Domingo, 27 de Mayo), el resultado que se mostrará será el 4 (enero=0, febrero=1, marzo =2, abril = 3, mayo = 4,…).

Si queremos que aparezca el nombre del mes en lugar del número debemos crear primero un array de doce elementos y rellenarlos con los nombres de los meses, luego usamos el resultado de getMonth() como índice a ese array.

getFullYear().- Nos devuelve el año correspondiente del objeto fecha en formato completo es decir incluyendo el siglo. Así si la fecha contiene 27-Mayo-2018, esta función nos dará 2018. Por ejemplo vamos a crear la variable fecha instanciada como un objeto Date() para a continuación presentarla directamente el valor de getFullYear() aplicado a fecha, o sea, 2018.

getHours().- Nos devuelve la sección horas en formato 0-24 almacenada en la parte dedicada a la hora del objeto fecha al que se aplica. Así si la fecha contiene 12:40:00, esta función nos dará 12, pero si contiene 5:40:00 nos dará 17. Igualmente el método interpreta los modificadores am/pm pero siempre devuelve la hora en formato de 24 horas. Por ejemplo creamos la variable fecha instanciada como un objeto Date(), el valor de getHoursr() presentara la hora actual (cuando se hizo este tutorial).

Nos mostrará la hora en la que estoy trabajando con este tutorial:

Puedes probar que ocurre con otros valores sin necesidad de cambiar la fecha y hora del sistema de la siguiente manera:

Este caso presentará en pantalla «Son las 20 horas.»

getMilliseconds().- Nos devuelve los milisegundos de la sección dedicada a la hora almacenada en el objeto fecha al que se aplica. Así si la fecha contiene en su parte de hora 12:40:08:640, esta función nos dará 640. Por ejemplo creemos la variable fecha instanciada como un objeto Date(), si son las 17:30:08:550 el valor de getMilliseconds() presentará 550.

En este caso el resultado es la hora actual cuando se hizo esta sección:

getMinutes().- Nos devuelve los minutos de la sección dedicada a la hora almacenada en el objeto fecha al que se aplica. Así si la fecha contiene en su parte de hora 12:40:08, esta función nos dará 40. Por ejemplo creemos la variable fecha instanciada como un objeto Date(), si son las 17:30:08 el valor de getMinutes() presentará 30.

Este listado representará los minutos de la hora actual a la creación de esta sección «32 minutos«:

Si queremos que quede más presentable podemos completar con ceros por la izquierda cuando el número (horas, minutos o segundos) sea menor de 10. Esto es tan fácil como se ve en el ejemplo:

getTime().- Nos devuelve la cantidad de milisegundos transcurridos desde el 1 de Enero de 1970 hasta la hora almacenada en el objeto fecha al que se aplica. En el ejemplo que sigue creamos un objeto Date con la fecha actual, a continuación escribimos el número de milisegundos dado por esta función, verás que este número habitualmente es muy grande, realmente esta función puede ser útil para calcular el tiempo transcurrido entre dos instantes, por ejemplo para calcular el tiempo que tarda un corredor en recorrer un trayecto, restando el getTime() obtenido al comenzar la carrera con el  getTime() obtenido al inicio de la misma.

getTimezoneOffset().- Esta función nos da la diferencia horaria en minutos del ordenador con respecto al meridiano de Greenwich. El valor depende por tanto de la zona o huso horario para el que esté configurado el ordenador, pudiendo ser negativo o positivo según esté en la zona oriental u occidental. El ejemplo que muestra el uso de la función define la variable ahora con la fecha actual y devuelve en minutos la diferencia horaria con la  GMT, el resultado depende de tu ordenador.

getYear().- Nos devuelve en forma numérica el mes correspondiente al objeto fecha al que se aplica. Así para la fecha correspondiente al 29/May/2018, esta función nos dará 118 (desde el navegador Chrome)  en IExplorer y 100 en Netscape. Por ejemplo creamos la variable fecha instanciada como un objeto Date(), y luego extraemos el año.

 parse(fecha).- Nos devuelve la cantidad de milisegundos transcurridos desde el 1 de Enero de 1970 00:00:00 hasta la hora pasada en el argumento fecha como una cadena de caracteres. Este método es un método global del objeto y por tanto no es necesario crear un objeto Date para usarlo, como vemos en este ejemplo.

setDate(diames).- Nos permite cambiar el día del mes del objeto fecha al que se aplica para poner el valor que se paso en el argumento diames. Este método controla por supuesto el número de días de cada mes y contempla el caso de años bisiestos, incluida la excepción del 2000, de forma que si pasamos como argumento 31 y el mes es de 30 días la función corrige la fecha completa pasándola al día 1 del mes siguiente. Esto lo vemos en el ejemplo que sigue: creamos una variable como un objeto Date con el último día de Septiembre (mes de 30 días) e intentamos poner el día a 31, luego comprobamos la fecha almacenada:

Como verás si pruebas el ejemplo la fecha es corregida y pasa a 1 de Octubre:

setFullYear().- Nos permite cambiar el año del objeto fecha por el valor pasado como argumento, un número interpretado como año completo, o sea, que para poner el año 1995 se debe pasar 1995, no el 95. El ejemplo pone precisamente este valor en el campo año de la variable fecha.

setHours().- Nos permite modificar la hora almacenada en el objeto fecha al que se aplica y poner la que se pasa como argumento. Lógicamente este argumento estará entre 0 y 24, aunque si se usa un valor fuera de este rango la fecha es corregida en consecuencia. Por ejemplo si intentamos poner la hora en 30 la fecha se adelanta 24 horas y se pone en las 6 horas, cambiando además el día. Igualmente si se usa un número negativo en el argumento se toma como horas antes de la última media noche del mismo día. Observa todo esto en el ejemplo, donde al final de cada acción se presenta la fecha completa en forma de cadena:

setMilliseconds().- Nos permite modificar el número de milisegundos de la hora almacenada en el objeto fecha al que se le aplica, poniendo los milisegundos al valor pasado como  argumento. Habitualmente el argumento estará comprendido entre 0 y 1000.

setMinutes(minact).- Nos permite ajustar los minutos de la sección dedicada a la hora  almacenada en el objeto fecha al que se aplica. El nuevo valor para los minutos se pasa como argumento, que habitualmente estará entre 0 y 59, aunque un valor fuera de este rango no da error sino que ajusta el resto de la hora. Así 68 en el argumento adelanta el reloj una hora pone los minutos a 8, mientras que un -4 pone los minutos a 56 (60 menos 4). Puedes ver lo que ocurre en este ejemplo:

setMonth(nummes).- Esta función se usa para modificar el mes del objeto fecha al que se aplica. El nuevo valor se pasa como un número en el argumento. El valor deberá ser como es lógico numérico o convertible a numérico y comprendido entre 0 (Enero) y 11 (Diciembre).  Si el valor está fuera del rango se toma el exceso sobre 11 y se corrige adecuadamente la fecha, y si es negativo se toma como número de meses antes de Enero (-1 sería Diciembre, -2 sería Noviembre, etc.). El ejemplo es muy sencillo, en este caso se cambia el mes de Septiembre por Marzo.

setSeconds(miliseg).- Permite que modifiquemos el número de segundos de la hora almacenada en el objeto fecha al que se aplica, poniendo los segundos al valor pasado como argumento. Habitualmente el argumento estará comprendido entre 0 y 60.

setTime().- Nos devuelve la cantidad de milisegundos transcurridos desde el 1 de Enero de 1970 hasta la hora almacenada en el objeto fecha al que se aplica. En el ejemplo que sigue creamos un objeto Date con la fecha actual, a continuación escribimos el número de milisegundos dado por este función, verás que este número habitualmente es muy grande, realmente esta función puede ser útil para calcular el tiempo transcurrido entre dos instantes, por ejemplo en un puzzle podría ser útil para calcular el tiempo que el jugador emplea en resolver el puzzle, restando el setTime() obtenido al final del juego del setTime() obtenido al inicio.

setYear().- Nos permite cambiar el año del objeto fecha por el valor pasado como argumento, un número interpretado como año completo, o sea, que para poner el año 1995 se debe poner el año completa con sus cuatro cifras. El ejemplo pone precisamente este valor en el campo año de la variable fecha.

toLocaleString().- Esta función se usa para transformar el objeto fecha al que se aplica a una cadena de caracteres según el estándard UTC (Universal Time Coordinates), denominación actual del GMT (Greenwich Meridian Time). La hora se ajusta según la configuración del ordenador.

toUTCString(fecha).- Nos devuelve la cantidad de milisegundos transcurridos desde el 1 de Enero de 1970 00:00:00 hasta la hora pasada en el argumento fecha. Este argumento se pasa como una serie de números separados por comas en el orden: Año, mes, día, y opcionalmente: hora, minuto, segundos. Este método es un método global del objeto y por tanto no es necesario crear un objeto Date para usarlo, como vemos en este ejemplo que toma como fecha actual el 30 de Mayo de 2018 a las 00:00:00 (La fecha de la creación de esta sección).