Guía JavaScript 1.5:Objetos base predefinidos:Objeto Date
De MDC
[editar] Objeto Date
JavaScript no posee un tipo de dato para fechas [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 cualesquiera propiedades.
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 [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 vaores 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 dependde de las facilidades y comportamiento de una plataforma específica; el comportamiento del objeto
Datevaría de plataforma a plataforma.
[editar] 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 pbjetos 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"))
[editar] 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.