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

Problema con fechas

Estas en el tema de Problema con fechas en el foro de ASP Clásico en Foros del Web. Tengo un modulo de mantencion en el cual ingreso fechas del tipo dd/mm/aaaa a una tabla noticias, la BD es Access. Las fechas se digitan, ...
  #1 (permalink)  
Antiguo 25/10/2006, 09:14
 
Fecha de Ingreso: julio-2002
Ubicación: Valparaiso
Mensajes: 152
Antigüedad: 21 años, 10 meses
Puntos: 0
Problema con fechas

Tengo un modulo de mantencion en el cual ingreso fechas del tipo
dd/mm/aaaa a una tabla noticias, la BD es Access.
Las fechas se digitan, si ingreso una fecha, ejm, 15/05/2006, la ingresa de manera normal, mi problema es que al ingresar una fecha, ejm, 05/06/2006, me guarda 06/05/2006... o sea cuando el dia (dd) esta entre el 01 y el 12, me lo cambia con el mes
Pienso que debe ser una configuracion del servidor ya que en mi equipo local esto no ocurre, pero tengo que arreglarlo de alguna manera.

Deberia formatear la fecha antes de guardarla? o ingresar dd mm aaaa por separado y despues concatenarlos para sacar la fecha? creo k debe haber una forma mas simple de hacer esto

De antemano gracias
  #2 (permalink)  
Antiguo 25/10/2006, 09:26
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
De acuerdo Funcion para formatear fecha..

Código:
' Convierte una fecha a formatoe DD/MM/AAAA
Function FechaGenerica(fecha)
    If IsDate(fecha) = True Then
       DIM dteDay, dteMonth, dteYear
       dia = Day(fecha)
       mes = Month(fecha)
       ano = Year(fecha)
       FechaGenerica = Right(Cstr(dia + 100),2) & "/" & Right(Cstr(mes + 100),2) & "/" & ano
    Else
       FechaGenerica = Null
    End If
End Function
  #3 (permalink)  
Antiguo 25/10/2006, 10:31
 
Fecha de Ingreso: julio-2002
Ubicación: Valparaiso
Mensajes: 152
Antigüedad: 21 años, 10 meses
Puntos: 0
Y esa funcion la uso como?, la verdad es que no tengo muy claro como usar funciones, puede ser asi?
<%
Function FechaGenerica(fecha)
If IsDate(fecha) = True Then
DIM dteDay, dteMonth, dteYear
dia = Day(fecha)
mes = Month(fecha)
ano = Year(fecha)
FechaGenerica = Right(Cstr(dia + 100),2) & "/" & Right(Cstr(mes + 100),2) & "/" & ano
Else
FechaGenerica = Null
End If
End Function

fecha = Request.form("fecha")

fecha = FechaGenerica(fecha)
%>

Por que si es asi.. no me esta funcionando
  #4 (permalink)  
Antiguo 25/10/2006, 11:40
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
Podrías hacerlo directamente, aunque no entiendo porque no funciona..

fecha = fechagenerica(Request.form("fecha"))

Podrías poner el error que da?

Saludos, Luis
  #5 (permalink)  
Antiguo 25/10/2006, 12:05
 
Fecha de Ingreso: octubre-2006
Mensajes: 12
Antigüedad: 17 años, 8 meses
Puntos: 0
Hola! Yo también quería preguntar sobre este tema porque me habían advertido que tendría problemas con las fechas ya que el access en el servidor tiene otra configuración. Ustedes hablan de esta función, pero yo como novata que soy no tengo la menor idea donde hay que colocarla. Trabajo con dreamweaver y access. Me podrían orientar. También tendré problemas con los ca,pos lógicos Sí y True? Gracias por su ayuda.
Zeta04
  #6 (permalink)  
Antiguo 25/10/2006, 12:44
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
Hola,

Lo ideal es guardar esta función y cualquier otra en un archivo llamado por ejemplo, funciones.asp y luego colocar un include al principio de cada página donde uses la función, asi:

<!--#include file="funciones.asp"-->

Para hacer la llamada a la funcion, solo debes asignarsela a una variable..haz la prueba:

fecha = "10/25/2006"
f = fechagenerica(fecha)
Response.write("La fecha original era:"&fecha&" y se convirtió en :"&f&")"

Saludos, Luis
  #7 (permalink)  
Antiguo 25/10/2006, 13:02
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Quizá le falte en la función un CDate(Fecha) al obtener los elementos que la componen ...... digo, por que veo que la mandan como cadena, no como fecha
  #8 (permalink)  
Antiguo 25/10/2006, 13:29
 
Fecha de Ingreso: julio-2002
Ubicación: Valparaiso
Mensajes: 152
Antigüedad: 21 años, 10 meses
Puntos: 0
No sale nada.... la prueba la hago con la fecha 01/07/2006

Cuando ingreso la noticia lo hago asi...

<%
Function FechaGenerica(fecha)
If IsDate(fecha) = True Then
DIM dteDay, dteMonth, dteYear
dia = Day(fecha)
mes = Month(fecha)
ano = Year(fecha)
FechaGenerica = Right(Cstr(dia + 100),2) & "/" & Right(Cstr(mes + 100),2) & "/" & ano
Else
FechaGenerica = Null
End If
End Function

fecha= Cdate(Request.form("fecha"))
fecha= FechaGenerica(fecha)

set con = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.RecordSet")

con.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("bd.mdb")
SQL = "SELECT * FROM noticias"

rs.Open SQL,con,3,3

rs.AddNew
rs("fecha") = fecha
rs.update

rs.Close
set rs=nothing
set con=nothing
%>

Al abrir la tabla de igual manera la fecha aparece 07-01-2006

lo hago tambien cuando leo la noticias

<%
Session.LCID = 1034
Function FechaGenerica(fecha)
If IsDate(fecha) = True Then
DIM dteDay, dteMonth, dteYear
dia = Day(fecha)
mes = Month(fecha)
ano = Year(fecha)
FechaGenerica = Right(Cstr(dia + 100),2) & "/" & Right(Cstr(mes + 100),2) & "/" & ano
Else
FechaGenerica = Null
End If
End Function

Dim con, rs, SQL
pase=Request.QueryString("id")

set con=Server.CreateObject("ADODB.Connection")
set rs=Server.CreateObject("ADODB.Recordset")

con.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("bd.mdb")&";"
SQL="SELECT * FROM noticias WHERE id LIKE '%"&pase&"%';"

rs.Open SQL, con, 1, 2
fecha=Cdate(rs("fecha"))
fecha= FechaGenerica(fecha)
%>
lo imprimo con
<%
<%Response.Write(fecha)%>
%>

y la fecha que me muestra es 07/01/2006
  #9 (permalink)  
Antiguo 25/10/2006, 13:53
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
Prueba Este Ejemplo

Con la finalidad de dividir el problema en partes, te sugiero que pruebes este ejemplo sencillo en una página totalmente limpia...

Si corrige la fecha como tu lo quieres entonces sabemos que el problema está en otra parte..

Saludos, Luis

Cita:
Iniciado por luisvasquez Ver Mensaje
Hola,

Lo ideal es guardar esta función y cualquier otra en un archivo llamado por ejemplo, funciones.asp y luego colocar un include al principio de cada página donde uses la función, asi:

<!--#include file="funciones.asp"-->

Para hacer la llamada a la funcion, solo debes asignarsela a una variable..haz la prueba:

fecha = "10/25/2006"
f = fechagenerica(fecha)
Response.write("La fecha original era:"&fecha&" y se convirtió en :"&f&")"

Saludos, Luis
  #10 (permalink)  
Antiguo 25/10/2006, 14:00
 
Fecha de Ingreso: julio-2002
Ubicación: Valparaiso
Mensajes: 152
Antigüedad: 21 años, 10 meses
Puntos: 0
Hola Luis, si probe el ejemplo del que me hablas, y con la fecha que aparece en el post funciona perfectamente, pero si a la fecha le asignas 07-01-2006, lo convierte a 07/01/2006, y yo necesito que lo convierta a 01/07/2006. Creo que el problema es cuando dia y mes con >= 12

Saludos
M@uR0

Última edición por M@uR0; 25/10/2006 a las 14:01 Razón: Me ekivoke
  #11 (permalink)  
Antiguo 25/10/2006, 14:38
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 6 meses
Puntos: 6
Mauro,

Lo que hace esta función es simplemente extrer el dia, mes y año y colocarlo en el formato DD/MM/AAAA.

Lo que voy a decir tal vez no tenga sentido, pero a mi me ha ocurrido que, cuando uso funciones creadas por mi (no nativas de ASP) que manipulan fechas siempre enloquecen cuando hago asi:

X = funcion(X)

Es decir, cuando asigno a la variable X el valor de la aplicación de la función a la misma variable X.

Por eso te sugiero que hagas esto al recibir la fecha:

fecha= fechagenerica(Cdate(Request.form("fecha")))

No pierdes nada con hacer esta prueba...

Saludos, Luis
  #12 (permalink)  
Antiguo 25/10/2006, 14:40
 
Fecha de Ingreso: julio-2002
Ubicación: Valparaiso
Mensajes: 152
Antigüedad: 21 años, 10 meses
Puntos: 0
ok .. lo hare y te cuento

Saludos
  #13 (permalink)  
Antiguo 26/10/2006, 16:20
 
Fecha de Ingreso: septiembre-2006
Mensajes: 161
Antigüedad: 17 años, 8 meses
Puntos: 0
Hola!!...yo tambien tuve ese problema...te recomiendo que verifiques el formato de fecha que maneja tu sistema ya que lo mas seguro es que esté en sistema americano (mm/dd/aaaa) y por eso cuando lo tecleas te aparece en ese formato y no en el que nosotros manejamos (dd/mm/aaaa), asi es que si puedes cámbialo, de todas formas te sugiero que revises esto:

<%= Day(Actual) & "/" & Month(Actual) & "/" & Year(Actual) %>
Modificación de los valores de la fecha seleccionada para mostrarla en el formato dd/mm/aa
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 21:13.