Foros del Web » Programando para Internet » ASP Clásico »

Sumar días a una fecha

Estas en el tema de Sumar días a una fecha en el foro de ASP Clásico en Foros del Web. Hola, Tengo un problema al intentar guardar datos en una base de datos (MySQL). Para que me almacene correctamente la fecha se la tengo que ...
  #1 (permalink)  
Antiguo 08/03/2002, 07:10
Avatar de pramos  
Fecha de Ingreso: febrero-2002
Mensajes: 91
Antigüedad: 23 años, 3 meses
Puntos: 1
Sumar días a una fecha

Hola,

Tengo un problema al intentar guardar datos en una base de datos (MySQL). Para que me almacene correctamente la fecha se la tengo que pasar en forma de año/mes/dia pero luego le intento hacer:

Fecha=DateAdd("d", 1, Fecha)

para añadir un día a esa fecha. El problema es que en vez de añadir un día, en un registro añade un mes en otro un día y así según se le antoje.

En Visual Basic el manejo de fechas es tan sencillo como convertirlo en un número entero y basta. Luego se pueden sumar días de una manera sencillisima. Y por fin cuando lo quieres mostrar otra vez como fecha le aplicas un formato.

¿¿¿¿ No se puede hacer algo parecido en VBScript para evitar tantos problemas con las fechas ????

Gracias mil !
  #2 (permalink)  
Antiguo 08/03/2002, 07:49
 
Fecha de Ingreso: diciembre-2001
Mensajes: 150
Antigüedad: 23 años, 4 meses
Puntos: 1
Re: Sumar días a una fecha

Hola pramos:

Has probado a indicarle el formato que te interesa ?

strFecha = Format(DateAdd("d", 1, Date), "yyyy/mm/dd")

Korrikalari
  #3 (permalink)  
Antiguo 08/03/2002, 07:51
 
Fecha de Ingreso: enero-2002
Mensajes: 120
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Sumar días a una fecha

Sumar un día es tan sencillo como:

fecha = fecha + 1
Tanto ASP como Visual Basic te permiten operar directamente con fechas.
  #4 (permalink)  
Antiguo 08/03/2002, 08:05
Avatar de pramos  
Fecha de Ingreso: febrero-2002
Mensajes: 91
Antigüedad: 23 años, 3 meses
Puntos: 1
Re: Sumar días a una fecha

Korrikalari, la función Format() no existe en VBScript, desgraciadamente para mi ya que estoy acostumbrado a usarla en vb.

Dimoito, eso no funciona, el servidor me da un error.

Puede que esto no me funcione a mi por que estoy usando un servidor bajo linux (chilisoft!asp) quizás
  #5 (permalink)  
Antiguo 08/03/2002, 08:14
 
Fecha de Ingreso: diciembre-2001
Mensajes: 150
Antigüedad: 23 años, 4 meses
Puntos: 1
Re: Sumar días a una fecha

Tienes razón, pramos !

Estaba pensando en VB.

Lo único que se me ocurre es algo un tanto rudimentario: divide la fecha con el split, sumale la cantidad a los días y vuelve a montar la cadena.

Repito, rudimentario...

Korrikalari
  #6 (permalink)  
Antiguo 08/03/2002, 17:42
Avatar de Aston  
Fecha de Ingreso: mayo-2001
Ubicación: Madrid
Mensajes: 933
Antigüedad: 24 años
Puntos: 0
Re: Sumar días a una fecha

Hola:

La función de VBScript para formatear fechas es FormatDateTime()

Espero te sirva. Un saludo.

<a href="http://www.laventanita.net/" target="_blank">
<img src="http://www.breogan.org/images/Aston.gif" border="0" alt="La Ventanita.net - Lo imprescindible en la red"></a>
  #7 (permalink)  
Antiguo 09/03/2002, 06:11
Avatar de pramos  
Fecha de Ingreso: febrero-2002
Mensajes: 91
Antigüedad: 23 años, 3 meses
Puntos: 1
Re: Sumar días a una fecha

Hola,

Gracias por vuestra ayuda.

Al final he solucionado definitivamente (por lo menos eso espero) el problema usando en vez de fechas, números enteros.

Transformo una fecha en una diferencia entre esa fecha y el 31/12/2000 con:

Numero=DateDiff(&quot;d&quot;, &quot;31/12/2000&quot;, Fecha)

Luego guardo ese número en la base de datos sin ninguna posibilidad de error.

Para mostrar la fecha cuando la necesito simplemente hago lo contrario:

Fecha=DateAdd(&quot;d&quot;, Numero, &quot;31/12/2000&quot;)

La seguridad que da esto es que las funciones DateAdd y DateDiff siempre funcionarán igual mientras estén en el mismo servidor. Por otra parte, la fecha 31/12/2000 no puede ser 'transformada' inadecuadamente ya que 2000 solo puede ser el año, 31 el dia y 12 el mes.

Espero que esta explicación le venga bien a alguien.

Gracias por vuestra ayuda.
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:54.