Foros del Web » Programación para mayores de 30 ;) » Programación General »

fechas

Estas en el tema de fechas en el foro de Programación General en Foros del Web. Hola Tengo una aplicación que llama a nuestro proveedor de registro de dominios.. Esto nos sirve para renovar dominios.. De tal forma que el regisrador ...
  #1 (permalink)  
Antiguo 04/02/2008, 09:27
 
Fecha de Ingreso: julio-2005
Mensajes: 40
Antigüedad: 19 años, 6 meses
Puntos: 0
fechas

Hola

Tengo una aplicación que llama a nuestro proveedor de registro de dominios..

Esto nos sirve para renovar dominios.. De tal forma que el regisrador nos devuelve la fecha de nuevo registro y esta se mete en la base de datos de nustro sistema

El problema es que desde hace un tiempo no nos funciona... Ellos devuelven la fecha pero esta no se mete e la base de datos o lo hace mal..

Lo único qu ehe podido ver es que el formato de fecha de uestra db es año-mes-dia y ellos justo lo mandn al contrario mes-dia-año.

No se si este pueda ser el problema... Pero d ser así ¿como puedo solucionar esto??

Gracias
  #2 (permalink)  
Antiguo 04/02/2008, 10:51
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 9 meses
Puntos: 11
Re: fechas

Si el proveedor va a dar la fecha en el mismo formato, siempre, entonces, con una expresión regular muy sencilla, se podría traducir a vuestro formato.
  #3 (permalink)  
Antiguo 04/02/2008, 12:58
 
Fecha de Ingreso: julio-2005
Mensajes: 40
Antigüedad: 19 años, 6 meses
Puntos: 0
Re: fechas

si, almenos hasta la fecha lo había hecho.

Como puedo hacer para pasar de a-m-d a m-d-a en perl.

Gracias
  #4 (permalink)  
Antiguo 04/02/2008, 13:07
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 9 meses
Puntos: 11
Re: fechas

Código:
$fecha =~ s/(....)-(..)-(..)/$2-$3-$1/;
  #5 (permalink)  
Antiguo 05/02/2008, 04:32
 
Fecha de Ingreso: julio-2005
Mensajes: 40
Antigüedad: 19 años, 6 meses
Puntos: 0
Re: fechas

me temo que algo hago mal, no hay forma no me devuelve valor alguno..

He puesto:

$fecha =~ s/$valoretorno/$2-$3-$1/;

donde $valoretorno es la fecha en el formato que yo la recibo

Y no da ningún resultado
  #6 (permalink)  
Antiguo 05/02/2008, 10:05
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 23 años
Puntos: 90
Re: fechas

porque en la regexp de

$fecha =~ s/(....)-(..)-(..)/$2-$3-$1/;

las variables $1 $2 $3 se llenan con lo que devuelven los paréntesis...

o sea que en esa línea ya quedca la fecha bien configurada...

__________________
Esteban Quintana
  #7 (permalink)  
Antiguo 05/02/2008, 10:21
 
Fecha de Ingreso: julio-2005
Mensajes: 40
Antigüedad: 19 años, 6 meses
Puntos: 0
Re: fechas

he conseguido hacer que muestre algún valor al ponerlo entrecomillado:

$fecha ="~ s/$valoretorno/$2-$3-$1/";

Pero lo que da es:

~ s/01-10-2015/--/

que no es lo buscado
  #8 (permalink)  
Antiguo 05/02/2008, 11:03
 
Fecha de Ingreso: julio-2005
Mensajes: 40
Antigüedad: 19 años, 6 meses
Puntos: 0
Re: fechas

He probado de esta forma:

$fecha =~ s/$valoretorno/$2-$3-$1/;
$a = $1;
$b = $2;
$c = $3;
$nuevafecha= "$b-$c-$a";

Pero el resultado que obtengo es:

--

Vaya, los 2 guiones, no recoge valor alguno
  #9 (permalink)  
Antiguo 05/02/2008, 13:01
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 23 años
Puntos: 90
Re: fechas

prueba así...

$fecha =~ s/(....)-(..)-(..)/$2-$3-$1/;

o

$valoretorno =~ s/(....)-(..)-(..)/$2-$3-$1/;

en que variable tienes la fecha ?

Te recomiendo que entres a www.perlenespanol.com y veas la sección de tutoriales...

__________________
Esteban Quintana
  #10 (permalink)  
Antiguo 05/02/2008, 15:49
 
Fecha de Ingreso: julio-2005
Mensajes: 40
Antigüedad: 19 años, 6 meses
Puntos: 0
Re: fechas

bueno... la cuestión es que el valor de retorno es por ejemplo:

2008-05-05

Con lo que si hago:

$fecha =~ s/$valoretorno/$2-$3-$1/;

realmente lo que estoy poniendo es:

$fecha =~ s/2008-05-05/$2-$3-$1/;

En lugar de:

$fecha =~ s/(2008)-(05)-(05)/$2-$3-$1/;

No se si esos parentesis (..) son necesarios pero claro el valor yo lo recibo así "2008-05-05" y no (2008)-(05)-(05).. Entiendo que ese puede ser el problema..

Lo que no se es como salvarlo
  #11 (permalink)  
Antiguo 06/02/2008, 04:45
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 23 años
Puntos: 90
Re: fechas

Los paréntesis solamente cargan en las variables numéricas el valor que haya adentro, o sea, que los paréntesis hacen que $1 sea igual a 2008, $2 contenga 05 y $3 tenga 05...

y no necesitas enviarlo a otra variable, hacé directamente lo que te pusimos

$fecha =~ s/(....)-(..)-(..)/$2-$3-$1/;

que te deja el $fecha como quieres...

Saludos
__________________
Esteban Quintana
  #12 (permalink)  
Antiguo 06/02/2008, 05:18
 
Fecha de Ingreso: julio-2005
Mensajes: 40
Antigüedad: 19 años, 6 meses
Puntos: 0
Re: fechas

Claro el problema es que yo no recibo la fecha con los parentesis..

Lo qu recibo es 2008-05-05

Entonces, lo que tendría que hacer primero es dividir esa fecha en 3 variables y luego de ahí ya meter las tres variables en esa función...

¿como puedo separar ese valor que recibo en año, día y mes...??

Creo que si es así con eso estará resuelto e problema
  #13 (permalink)  
Antiguo 06/02/2008, 07:03
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 23 años
Puntos: 90
Re: fechas

Cita:
Te recomiendo que entres a www.perlenespanol.com y veas la sección de tutoriales...
En serio, te lo recomiento mucho, por ejemplo hay 2 tutoriales que hablan sobre expresiones regulares, que es esto que estamos haciendo...

Los paréntesis son parte de la expresión regular, NO del contenido de la variable !!!

ya sabemos que la fecha no tiene los paréntesis, probalo que te funcionará !!!

si no te gusta esto de las expresiones puedes probar con algo así

my ($ano, $mes, $dia) = split(/-/, $fecha);

y luego haces

my $nuevaFecha = "$mes-$dia-$ano";

así talvés es un poco más intuitivo...

__________________
Esteban Quintana
  #14 (permalink)  
Antiguo 06/02/2008, 14:12
 
Fecha de Ingreso: julio-2005
Mensajes: 40
Antigüedad: 19 años, 6 meses
Puntos: 0
Re: fechas

Gracias, si con esto me está funcionando.
  #15 (permalink)  
Antiguo 07/02/2008, 09:51
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 9 meses
Puntos: 11
Re: fechas

Código:
$valoretorno = '2008-05-05';
$valoretorno =~ s/(....)-(..)-(..)/$2-$3-$1/;
print $valoretorno;
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:49.