![]() |
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 |
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. |
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 |
Re: fechas Código: $fecha =~ s/(....)-(..)-(..)/$2-$3-$1/; |
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 |
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... :adios: |
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 |
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 |
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... :adios: |
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 |
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 |
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 |
Re: fechas Cita:
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... :adios: |
Re: fechas Gracias, si con esto me está funcionando. |
Re: fechas Código: $valoretorno = '2008-05-05'; |
| La zona horaria es GMT -6. Ahora son las 22:08. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.