Foros del Web » Programando para Internet » PHP »

Problema al transformar fecha de español a ingles para insertarla en la bd

Estas en el tema de Problema al transformar fecha de español a ingles para insertarla en la bd en el foro de PHP en Foros del Web. Hola amigos, les cuento, buscando en la web encontre las funciones necesarias para transformar la fecha de ingles a español y de español a ingles ...
  #1 (permalink)  
Antiguo 28/06/2009, 14:28
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 meses
Puntos: 0
Problema al transformar fecha de español a ingles para insertarla en la bd

Hola amigos, les cuento, buscando en la web encontre las funciones necesarias para transformar la fecha de ingles a español y de español a ingles para asi mostrar las fechas en español y luego insertarlas a la bd en ingles, pero al transformar la fecha de español a ingles no me funciona, no me la transforma, lo raro es q de ingles a español si me la transforma, he probado con dos funciones distintas para pasar la fecha de español a ingles pero ninguna me funciona, las funciones para pasar de español a ingles la fecha son estas (las dos q he ocupado y no me funcionan):

Código PHP:
function cambiaPostgre($fecha) {
ereg"([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})"$fecha$mifecha);
$lafecha=$mifecha[3]."-".$mifecha[2]."-".$mifecha[1];
return 
$lafecha;

esa es una y la otra es esta:
Código PHP:
function  cambiaf_a_mysql $fecha ){

 
ereg (  "([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})" ,  $fecha ,  $mifecha );

 
$fechafinal $mifecha ]. "/" $mifecha ]. "/" $mifecha ];

return  
$fechafinal ;

 } 
y de la manera como la estoy llamando es asi:
Código PHP:
$fecha=$_POST['fecha_calendario'];//le paso el valor de la fecha a la variable fecha por post

$UPDATE_PADRE="UPDATE padre SET nombre_padre = '".($_SESSION['nombre_padre'])."', apellido_paterno_padre = '".($_SESSION['ape_paterno_padre'])."', apellido_materno_padre = '".($_SESSION['ape_materno_padre'])."',  fecha_nac_padre = '".cambiaPostgre($fecha)."'//aca estoy pasando la fecha a ingles 
ese es mi codigo y cuando imprimo el valor de la fecha q estoy pasando a ingles solo me imprime los dos guiones medios q me separan el formato de la fecha

en q estoy fallando amigos??? soy yo o estan malas las funciones para pasar la fecha de español a ingles?? ya q con las dos he probado y al imprimir la fecha q supuestamenmte estoy cambiando de español a ingles solo me imprime los guiones q dan formato a la fecha.... porfavor amigos ruego de su ayuda q me guien pls!!!!.... de antemano gracias.... bye.
  #2 (permalink)  
Antiguo 28/06/2009, 14:58
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Problema al transformar fecha de español a ingles para insertarla en la bd

En realidad tu no necesitas ereg para dividirlas usa mejor explode()

Código PHP:
function cambiaPostgre($fecha) { 
$mifecha explode("/"$fecha);
$lafecha=$mifecha[2]."-".$mifecha[1]."-".$mifecha[0]; 
return 
$lafecha


echo 
cambiaPostgre("28/06/2009"); 
  #3 (permalink)  
Antiguo 28/06/2009, 15:22
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: Problema al transformar fecha de español a ingles para insertarla en la bd

hola abimaelrc, cambie la funcion a como me diste tu para cambiar la fecha de español a ingles pero al imprimir la consulta al no hacerme el update me sigue imprimiendo la fecha en español asi 23-4-1974, lo q necesito es q me pase la fecha q tengo en español q me la pase a ingles para insertarla en mi bd, pero no me la pasa pq sigue en formato español, y la estoy llamando asi en el update:
Código PHP:
$fecha=$_POST['fecha_calendario'];

UPDATE padre SET  fecha_nac_padre '".cambiaPostgre($fecha)."' 
en q estoy fallando??? ya q la funcion para cambiar de español a ingles es esta (la q me diste tu :
Código PHP:
function cambiaPostgre($fecha) { 
$mifecha explode("/"$fecha);
$lafecha=$mifecha[2]."-".$mifecha[1]."-".$mifecha[0]; 
return 
$lafecha

y el error q me manda en el update es este :

Warning: pg_exec() [function.pg-exec]: Query failed: ERROR: invalid input syntax for type date: "--23-4-1973" in C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\PDA\actualiza_padre.ph p on line 32

me marca invalido el formato fecha para ser actualizada la consulta

en q estoy fallando??? porfavor amigos ayuda!!! de antemano gracias.... bye.
  #4 (permalink)  
Antiguo 29/06/2009, 00:05
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Problema al transformar fecha de español a ingles para insertarla en la bd

escribe toda la consulta
  #5 (permalink)  
Antiguo 29/06/2009, 04:44
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 15 años, 9 meses
Puntos: 8
Respuesta: Problema al transformar fecha de español a ingles para insertarla en la bd

Si te sirve podes usar algo asi !!!

Tomamos la fecha de actual
Código php:
Ver original
  1. $fecha_act=date("d/m/Y");
  2. $fec_hoy = explode("/", $fecha_act);

Mostramos la fecha actual, en 3 inputs, dia-mes-anio, por si las queres modificar …

Código php:
Ver original
  1. <input type="text" size="1" name="dia_hoy" value="<?echo $fec_hoy[0]?>"><input type="text" size="1" name="mes_hoy" value="<?echo $fec_hoy[1]?>"><input type="text" size="2" name="anio_hoy" value="<?echo $fec_hoy[2]?>">

Y cuando la vas a guardar las concatenas lo que esta en los inputs que vimos antes, para guardar en la base de datos…

Código php:
Ver original
  1. $fecha=$_POST["anio_hoy"]."-".$_POST["mes_hoy"]."-".$_POST["dia_hoy"];

Y cuando haces el insert en el campo fecha le guardas lo que esta en la variable $fecha

Suerte !!!
__________________
Mail: [email protected]
  #6 (permalink)  
Antiguo 29/06/2009, 11:59
Avatar de lukas4  
Fecha de Ingreso: octubre-2008
Ubicación: frente al pc
Mensajes: 496
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: Problema al transformar fecha de español a ingles para insertarla en la bd

supongamos que la fecha que tienes en español es la del dia de hoy y la tienes asi: 29-06-2009

entonces, $fechaEspanol es igual a 29-06-2009

Código PHP:
$splitDate=explode("-",$fechaEspanol);
$fechaIngles=$splitDate[1]."-".$spliDate[0]."-".$splitDate[2];
//tons tu fecha en ingles queda asi, 06-29-2009
//pero para insertarlas en la base de datos (mysql, no se las demas) ocupas el formato YYYY-MM-DD 
//tons namas le cambias
$fechaIngles=$splitDate[2]."-".$splitDate[1]."-".$splitDate[0];
//puedes cambiar el guion por cualquier cosa q quieras 
  #7 (permalink)  
Antiguo 29/06/2009, 12:29
Avatar de bacdavi  
Fecha de Ingreso: junio-2006
Ubicación: http://localhost/
Mensajes: 351
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: Problema al transformar fecha de español a ingles para insertarla en la bd

Proba asi:

fecha_nac_padre = "DATE_FORMAT('".$fecha."','%Y-%m-%a')";

a mi me ha funcionado al inyectar datos!
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 04:47.