Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] constructor Date y método apply

Estas en el tema de constructor Date y método apply en el foro de Javascript en Foros del Web. ¡que tal, comunidad! el tema trata sobre un problema que me realice desde hace muchos años pero en su momento no encontre la solución. hace ...
  #1 (permalink)  
Antiguo 05/03/2011, 22:28
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
constructor Date y método apply

¡que tal, comunidad!

el tema trata sobre un problema que me realice desde hace muchos años pero en su momento no encontre la solución. hace un par de semanas ayudaba a un miembro y me acorde busque información e intente varias cosas pero sin éxito. esta vez lo comparto para dos propósitos: determinar si existe una solución y para que no se me vuelva olvidar el tema.

¡al grano! he intentado buscar la manera de poder invocar el constructor Date a través de apply. la idea es que se le pueda pasar un número de argumentos variable. un ejemplo de su uso sería que a partir de una cadena se pueda dividir los componentes en un array y pasar éste como un número de argumentos arbitrario a Date en lugar de invocar Date indicando cada indice del array. el siguiente código demuestra la teoría pero resulta que no produce el resultado esperado.
Código:
// marzo 5, 2011 ;
var array = [2011, 2, 5];

var foo = Date.apply(null, array);
// devuelve la fecha actual independientemente de cuantos argumentos se provee ;
// esto porque el constructor no se ha invocado con el keyword new ;

var bar = new Date.apply(null, array);
// produce error del tipo TypeError debido a que apply no es un constructor ;
las propuestas que encontre por internet -ahora mismo no encuentro el enlace- era crear su propia función donde determina el número de argumentos y a través de un switch invocar Date. esa alternativa, aunque funciona, no me gusta pues quería hacerlo más prolijo sin tener que abundar en mucho código o creación de funciones. adicionalmente, no utilizo el método Date.parse porque el formato que éste utiliza no esta estandarizado y es dependiente de cada implementación de javascript. aca un tema donde explico un ejemplo que no funciona en todos los navegadores, http://www.forosdelweb.com/showthread.php?p=3761056.

entonces la pregunta es, ¿alguien tiene alguna idea de como lograr algo parecido a la linea que produce el error TypeError? cualquier comentario es bienvenido...


offtopic: después de tanto tiempo en compartir, creo que será la primera vez que pido ayuda en javascript. ¿debería alegrarme?
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #2 (permalink)  
Antiguo 06/03/2011, 01:33
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: constructor Date y método apply

Acá hay buena información al respecto:
http://stackoverflow.com/questions/1...structor-apply
Aparentemente, lo más cercano a tu objetivo es esto:
Código PHP:
<script type="text/javascript">
var array = [
201225];
var 
bar = new DateDate.UTC.applynull, array ) + ( (new Date()).getTimezoneOffset() * 60000 ));
alert(bar);
</script> 
  #3 (permalink)  
Antiguo 06/03/2011, 02:36
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: constructor Date y método apply

eventualmente, panino! justo lo que buscaba: sin usar eval, funciones extras, generacion de funciones al vuelo, ni nada tan elaborado. habia dado con algunos temas de stackoverflow pero no con ese. jamas iba a llegar a un codigo tan similar porque nunca habia leido sobre Date.UTC.

gracias por tu tiempo invertido!
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 06/03/2011, 09:14
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: constructor Date y método apply

Tus preguntas son tan interesantes como tus respuestas

Etiquetas: apply, date
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:51.