Objeto Date

Hubo errores de script en esta página. Mientras los editores del sitio lo solucionan, puedes ver un contenido parcial debajo.

Objeto Date

JavaScript no posee un tipo de dato para fechas {{ mediawiki.external('date') }}. Sin embargo, puede utilizar el objeto Date y sus métodos para trabajar con fechas y tiempos en sus aplicaciones. El objeto Date posee un extenso número de métodos para configurar, obtener y manipular fechas. Este no posee ninguna propiedad.

JavaScript manipula las fechas similarmente a Java. Los dos lenguajes poseen muchos de los mismos métodos para fechas y ambos lenguajes almacenas las fechas como un número de milisegundos desde Enero 1, 1970, 00:00:00.

El dominio del objeto Date es -100,000,000 días hasta 100,000,000 días relativos al 01 de Enero de 1970 UTC.

Para crear un objeto Date:

NombreObjetoDate = new Date([parámetros])

donde NombreObjetoDate es el nombre del objeto Date ha ser creado; puede ser un nuevo Objeto o una propiedad de un objeto existente.

Loa parámetros en la sintaxis precedente pueden ser cualesquiera de los siguientes:

  • Nada {{ mediawiki.external('Nothing') }}: crea la fecha de hoy día y la hora. Por ejemplo, hoydía = new Date().
  • Una cadena representando una fecha en la siguiente forma: "Mes día, año horas:minutos:segundos." Por ejemplo, Navidad95 = new Date("December 25, 1995 13:30:00"). Si se omite las horas, minutos, o segundos, el valor será configurado como cero.
  • Un conjunto de valores enteros para año, mes y día. Por ejemplo, Navidad95 = new Date(1995,11,25).
  • Un conjunto de valores enteros para año, mes, día, hora, minuto y segundos. Por ejemplo, Navidad95 = new Date(1995,11,25,9,30,0).

JavaScript 1.2 y versiones anteriores
El objeto Date object se comporta como sigue:

  • Fechas antes de 1970 no están permitidas.
  • JavaScript depende de las facilidades y comportamiento de una plataforma específica; el comportamiento del objeto Date varía de plataforma a plataforma.

Métodos del Objeto Date

Los métodos del objeto Date para la manipulación de fechas y tiempos caen en estas amplias categorías:

  • Métodos "set", para la configuración de valores de tiempos y fechas en objetos Date.
  • Métodos "get" para la obtención de valores de tiempos y fechas desde objetos Date.
  • Métodos "to" para retonar valores de cadena desde objetos Date.
  • Métodos UTC y de conversión, para convertir cadenas Date.

Con los métodos "get" y "set" puede obtener y configurar segundos, minutos, horas, día del mes, día de la semana, meses y años separadamente. Existe un método getDay que retorna el día de la semana, pero no el método correspondiente setDay debido a que el día de la semana es configurado automáticamente. Estos métodos utilizan enteros para representar aquellos valores como sigue:

  • Segundos y minutos: 0 a 59
  • Horas: 0 a 23
  • Día: 0 (Domingo) a 6 (Sábado)
  • Fecha: 1 a 31 (día del mes)
  • Meses: 0 (Enero) a 11 (Deciembre)
  • Año: años desde 1900

Por ejemplo, suponga que define la siguiente fecha:

Navidad95 = new Date("December 25, 1995")

Entonces Navidad95.getMonth() retorna 11 y Navidad95.getFullYear() retorna 1995.

Los métodos getTime y setTime son utilizados para comparar fechas. El método getTime retorna el número de millisegundos desde Enero 1, 1970, 00:00:00 para un objeto Date.

Por ejemplo, el código siguiente despliega el número de días transcurridos en el año actual:

hoydía = new Date()
FinAño = new Date(1995,11,31,23,59,59,999) // Configura el día y el mes
FinAño.setFullYear(hoydía.getFullYear()) // Configura año para este año
msPorDía = 24 * 60 * 60 * 1000 // Número de milisegundos por día
diastranscurridos = (finAño.getTime() - hoydía.getTime()) / msPorDía
diastranscurridos = Math.round(diastranscurridos) //retorna días transcurridos en el año

Este ejemplo crea un objeto Date llamado hoydía que contiene la fecha del día de hoy. Crea un objeto Date llamado FinAño y configura el año con el año actual. Luego, utilizando el número de milisegundos por día, computa el número de días entre hoydía y FinAño, utilizando getTime y redondeando al número total de días.

El método parse es útil para asignar valores desde cadenas de fechas a bjetos Date existentes. Por ejemplo, el código siguiente utiliza parse y setTime para asignar el valor de fecha al objeto IPOdate:

IPOdate = new Date()
IPOdate.setTime(Date.parse("Aug 9, 1995"))

Utilizando el Objeto Date: un Ejemplo

En el siguiente ejemplo, la función JSReloj() retorna el tiempo en un formato de un reloj digital.

function JSReloj() {
   var tiempo = new Date()
   var hora = tiempo.getHours()
   var minutos = tiempo.getMinutes()
   var segundos = tiempo.getSeconds()
   var temp = "" + ((hora > 12) ? hora - 12 : hora)
   if (hora == 0)
      temp = "12";
   temp += ((minutos < 10) ? ":0" : ":") + minutos
   temp += ((segundos < 10) ? ":0" : ":") + segundos
   temp += (hora >= 12) ? " P.M." : " A.M."
   return temp
}

La función JSReloj primero crea un nuevo objeto Date llamado tiempo; puesto que no se han dado argumentos, tiempo es creado con la hora y fecha actuales. Luego invoca a los métodos getHours, getMinutes y getSeconds asignando el valor de la hora, minutos y segundos actuales a hora, minutos y segundos.

Las cuatro siguientes sentencias construyen una cadena basada en el valor del tiempo. La primera sentencia crea una variable temp, asignándole el valor utilizando una expresión condicional; if hora es mayor que 12, (hora - 12), caso contrario simplemente la hora hour, a menos que la hora sea 0, en cuyo caso se convierte en 12.

La siguiente sentencia añade el valor de minutos a temp. Si el valor de minutos es menor que 10, la expresión condicional añade una cadena con un cero por delante; caso contrario añade una cadena con dos puntos de demarcación. Luego una sentencia añade el valor de segundos a temp en la misma manera.

Finalmente, una expresión condicional añade "PM" a temp si hora es 12 o mayor; caso contrario, añade "AM" a temp.

{{ AnteriorSiguiente("Guía JavaScript 1.5:Objetos base predefinidos:Objeto Boolean", "Guía JavaScript 1.5:Objetos base predefinidos:Objeto Function") }}

{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Predefined_Core_Objects/Date_Object", "fr": "fr/Guide_JavaScript_1.5/Objets_pr\u00e9d\u00e9finis/L\'objet_Date", "ja": "ja/Core_JavaScript_1.5_Guide/Predefined_Core_Objects/Date_Object", "pl": "pl/Przewodnik_po_j\u0119zyku_JavaScript_1.5/Obiekty_predefiniowane/Obiekt_Date" } ) }}

Etiquetas y colaboradores del documento

Colaboradores de esta página: DSN XP, tiangolo, Mgjbot
Última actualización por: tiangolo,