Foros del Web » Programando para Internet » Javascript »

sobre fechas (semanas)

Estas en el tema de sobre fechas (semanas) en el foro de Javascript en Foros del Web. a ver si me explico. Tengo 2 cuadros de texto en los cuales quiero colocar las fechas del lunes y viernes respectivamente de una misma ...
  #1 (permalink)  
Antiguo 23/06/2003, 15:14
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.135
Antigüedad: 21 años, 5 meses
Puntos: 2
sobre fechas (semanas)

a ver si me explico. Tengo 2 cuadros de texto en los cuales quiero colocar las fechas del lunes y viernes respectivamente de una misma semana. Tambien, mediante unos botones quiero avanzar semanas o retroceder, colocando tambien el lunes y el viernes en esos cuadros de texto.

Existe alguna forma de controlarlo mediante javascript?
  #2 (permalink)  
Antiguo 23/06/2003, 19:35
Avatar de Gurrutello  
Fecha de Ingreso: enero-2002
Ubicación: Ontario,Toronto [Canada]
Mensajes: 2.017
Antigüedad: 22 años, 3 meses
Puntos: 6
hola como poderse todo se puede
pero... ( siempre hay un pero )
que quieres hacer exactamente
1. mostrar datos de semanas anteriores-o-posteriores?
2. simplemente un calendario?
3. o tener esa chulada en tu web?

saludos
  #3 (permalink)  
Antiguo 23/06/2003, 23:59
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.135
Antigüedad: 21 años, 5 meses
Puntos: 2
es un formulario de consulta y quiero sacar los registros entre 2 fechas determinadas, pero me han dicho que realice esta "herramienta" para facilitar la selección de criterios semanales que es el que más se utilizará.
Quiero 2 botones uno para avanzar la semana y otro para retrasar la semana, colocando en esos cuadros de texto el lunes y el viernes de la semana en cuestión, y si puede ser el nº de semana.

gracias
  #4 (permalink)  
Antiguo 24/06/2003, 03:33
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Bueno, te voy a dar una respuesta que a mí me funciona. Lo que pasa es que no es Javascript sino VBSCript. Es la primera vez que uso este lenguaje y no sé si todos los navegadores lo soportarán, pero la verdad es que trabajar con fechas en Javascript me ha parecido siempre la mar de complicado. Aquí te lo dejo:

Código:
<script language="VBScript">
fecha=Date()
dia=WeekDay(Date)
document.write("El lunes es: "&fecha-dia+2&"<br>")
document.write("El viernes es: "&fecha-dia+6)
</script>
Espero que te sirva.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!

Última edición por Bravenap; 24/06/2003 a las 03:38
  #5 (permalink)  
Antiguo 24/06/2003, 03:37
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Acabo de comprobar que tal y como está el código, en Netscape no funciona. A lo mejor (esperemos) sea sólo por el document.write y se puede solucionar fácilmente. Pero con eso de que VB es de Microsoft...

Suerte.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #6 (permalink)  
Antiguo 24/06/2003, 03:59
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Si no recuerdo mal, vbscript en cliente sólo lo soporta explorer
  #7 (permalink)  
Antiguo 24/06/2003, 04:09
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Acabo de leer algunos mensajes que me lo han confirmado y con el tuyo... pues ya si que no hay dudas.

De todas formas, si puedo hacer un pequeño offtopic, por qué Javascript no tiene funciones tan fáciles y asequibles como en este caso. Yo creo que el tema de las fechas es algo que casi siempre se plantea en algún momento alguien que programe páginas. Entonces, por qué los dedarrolladores de Javascipt (por cierto, no sé quiénes son) no han pensado en darle una solución sencilla y eficaz. En todos los mensajes en los que se habla de fechas que he visto en los foros, las complicaciones son muchas para problemas de fácil comprensión. Por la persona, claro, no por el ordenador .

Bueno, un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #8 (permalink)  
Antiguo 24/06/2003, 04:20
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Siguiendo con el off-topic....

es cierto que javascript es muy poco amigable para trabajar con fechas. Aunque se tenga claro el tema te hace dar muchas vueltas para, por ejemplo, sumarle un día a una fecha.

vbscript en cambio me parece una maravilla para trabajar con fechas
  #9 (permalink)  
Antiguo 25/06/2003, 13:52
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
¿No tan fácil?

¿En serio creen que es poco amigable? Es verdad que las funciones implementadas en VBScript son más cómodas, pero es dependiente de que el browser sea IE. Excelente para desarrollar una intranet, pero no para la Internet.
Podemos implementar nuestros propios métodos en JavaScript para realizar las mismas tareas, con la misma comodidad, o incluso mejor.
Trabajo constantemente con fechas, así que tengo una librería que define métodos para Date gracias a que uso el prototype. (Bendita sea la OOP).
Por ejemplo dada una fecha determinada, quiero sumarle 20 días:
Código:
var hoy = new Date();
var hoyMas20 = hoy.sumDia(20);
Y aquí, ya estarán pensando que he perdido un tornillo, porque Date no tiene el método sumDia(). Vuelvo a lo mismo. Quizá los métodos de Date no sean tan amigables... hágamoslos entonces.
Para que lo anterior funcione, en un archivo que luego agrego en el encabezado de la página donde requiero los metodos personales para Date, tengo entre el código esto:
Código:
function estableceDia(numDias){
   tmpMiliSec = this.getTime() + (numDias * this.miliSecDia);
   return new Date(tmpMiliSec)
}

Date.prototype.miliSecDia = 86400000;
Date.prototype.sumDia = estableceDia;
Y a partir de allí ¿que más da que los métodos de Date no sean tan sencillos?

Joja_2:
Prueba esto...
Código:
<html>
<head>
<script language="JavaScript">
  function obtenerLiteral(){
    var arDia = new Array("Domingo", "Lunes","Martes","Miércoles",
                           "Jueves","Viernes","Sábado","Domingo");
    var arMes = new Array("Enero","Febrero","Marzo","Abril",
                          "Mayo","Junio","Julio","Agosto",
                           "Septiembre","Octubre","Noviembre","Diciembre");
    lit = arDia[this.getDay()] + " " + this.getDate() + " de " +
           arMes[this.getMonth()] + " de " + this.getFullYear();
    return lit;
  }

  function estableceDia(numDias){
    tmpMiliSec = this.getTime() + (numDias * this.miliSecDia);
    return new Date(tmpMiliSec)
  }

  Date.prototype.miliSecDia = 86400000;
  Date.prototype.toLiteral = obtenerLiteral;
  Date.prototype.sumDia = estableceDia;

  var semana = 0;
  var hoy = new Date();

  function establecerSemana(adelante){
    adelante = (isNaN(parseInt(adelante))) ? 0 : adelante;
    semana += adelante * 7;
    document.form1.dia1.value = hoy.sumDia(semana - hoy.getDay() + 1).toLiteral();
    document.form1.dia2.value = hoy.sumDia(semana - hoy.getDay() + 5).toLiteral();
  }

  window.onload = establecerSemana;
</script>
</head>
<body>
<form name="form1">
  <input type="text" name="dia1" style="width:200">
  <input type="text" name="dia2" style="width:200"><br>
  <input type="button" value = "Atrás" name="btnAtras" onclick="establecerSemana(-1)">
  <input type="button" value = "Adelante" name="btnAdelante" onclick="establecerSemana(1)">
</form>
</body>
</html>
Saludos.
  #10 (permalink)  
Antiguo 25/06/2003, 14:08
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Pues así de repente no entendí casi nada. Lo miraré con más detalle porque parece qeu tiene visos de ser realmente bueno, y no sólo para fechas.

Un saludo y hasta pronto.

Aún así sigo pensando que JS y las fechas no se llevan muy bien.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #11 (permalink)  
Antiguo 26/06/2003, 15:34
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Hola Beakdan,
Cita:
¿En serio creen que es poco amigable?
En serio lo creo

Después de trabajar con vbscript para manejar fechas, javascript me parece muy poco práctico para trabajar con éstas, hay que rendirse ante la evidencia

Eso no quiere decir que haya dejado de trabajar con javascript, sólo que las vueltas que hay que dar para manejar las fechas son engorrosas.

Obviamente sólo uso vbscript en el servidor y cuando he de trabajar en cliente me peleo con js.

Está bueno el método que propones de usar prototype y crearte tus propias librerías, me quedo con el dato para mi próxima pelea con fechas en js


Gracias por compartirlo y por el ejemplo que nos has dejado, este me lo guardo

Un saludo
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 14:09.