Foros del Web » Programando para Internet » PHP »

Ayuda con fechas por favor

Estas en el tema de Ayuda con fechas por favor en el foro de PHP en Foros del Web. Hola, tengo un problema on el formato de fechas de MySQL. Con el código que adjunto consigo mostrar las fechas en un formulario con formato ...
  #1 (permalink)  
Antiguo 14/12/2009, 14:10
 
Fecha de Ingreso: septiembre-2008
Mensajes: 5
Antigüedad: 15 años, 7 meses
Puntos: 0
Ayuda con fechas por favor

Hola, tengo un problema on el formato de fechas de MySQL. Con el código que adjunto consigo mostrar las fechas en un formulario con formato DD/MM/YYYY.

El problema es que cuando el forulario se envía, la BD no se actualiza porque la fecha que acepta MySQL tiene que ser en formato YYYY/MM/DD.

Estoy desesperado porque lo he intentado todo y no hay manera, toos los campos se actualizan, pero la fecha cambia a 0000-00-00.

Este es el código que utilizo para mostrar la Fecha de Inicio:

<input name="AG_fechai" type="text" class="CP_loginFormFields" value="<?php echo date('d/m/Y',strtotime($row_eventosUpdate_RS['AG_fechai'])); ?>" size="32" />

Y este es el código que muestra la Fecha de Finalización:

<input name="AG_fechaf" type="text" class="CP_loginFormFields" value="<?php echo date('d/m/Y',strtotime($row_eventosUpdate_RS['AG_fechaf'])); ?>" size="32" />

Este es el query que actualiza la BD a excepción de las fechas.

// $updateSQL = sprintf("UPDATE t_agenda SET AG_fechai=%s, AG_fechaf=%s, AG_precio=%s, AG_horario=%s, AG_titulo_esp=%s, AG_titulo_eng=%s, AG_titulo_ger=%s, AG_titulo_fra=%s WHERE id_AG=%s",
GetSQLValueString($_POST['AG_fechai'], "date",
GetSQLValueString($_POST['AG_fechaf'], "date",
GetSQLValueString($_POST['AG_precio'], "text",
GetSQLValueString($_POST['AG_horario'], "text",
GetSQLValueString($_POST['AG_titulo_esp'], "text",
GetSQLValueString($_POST['AG_titulo_eng'], "text",
GetSQLValueString($_POST['AG_titulo_ger'], "text",
GetSQLValueString($_POST['AG_titulo_fra'], "text",
GetSQLValueString($_POST['id_AG'], "int");

mysql_select_db($database_amat_connect, $amat_connect);
$Result1 = mysql_query($updateSQL, $amat_connect) or die(mysql_error());

Soy nuevo en esto y estoy atascadísimo con esto. Gracias por vuestra ayuda
  #2 (permalink)  
Antiguo 14/12/2009, 14:58
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Respuesta: Ayuda con fechas por favor

Toma la fecha y cambiale el formato.

Código PHP:

     
list($dia,$mes,$ano)=explode("/",$_POST['AG_fechaf']);
     
$fechamysql="$ano/$mes/$dia"
En el ejemplo reemplaza la variable que tienes ahora por $fechamysql.
  #3 (permalink)  
Antiguo 14/12/2009, 15:00
 
Fecha de Ingreso: septiembre-2008
Mensajes: 5
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con fechas por favor

Muchas gracias Claudiovega, pero la verdad es que necesito una explicación más detallada porque soy muy nuevo en PHP y MySQL.
Necesio saber como aplicar lo que me dices a mi código ycomo incluirlo en el query del update.
Por favor, te agradecería esta ayuda.
Gracias
  #4 (permalink)  
Antiguo 14/12/2009, 15:08
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Respuesta: Ayuda con fechas por favor

A ver:

Código PHP:

    
//paso la fecha inicial a formato mysql, tomo la fecha la convierto a una array y luego en 3 variables, luego las concateno en formato año/mes/dia
     
list($dia,$mes,$ano)=explode("/",$_POST['AG_fechai']);
     
$fechai="$ano/$mes/$dia";

     list(
$dia,$mes,$ano)=explode("/",$_POST['AG_fechaf']);
     
$fechaf="$ano/$mes/$dia";

     
$updateSQL sprintf("UPDATE t_agenda SET AG_fechai=%s, AG_fechaf=%s, AG_precio=%s, AG_horario=%s, AG_titulo_esp=%s, AG_titulo_eng=%s, AG_titulo_ger=%s, AG_titulo_fra=%s WHERE id_AG=%s",
GetSQLValueString($fechai"date",
GetSQLValueString($fechaf"date",
GetSQLValueString($_POST['AG_precio'], "text",
GetSQLValueString($_POST['AG_horario'], "text",
GetSQLValueString($_POST['AG_titulo_esp'], "text",
GetSQLValueString($_POST['AG_titulo_eng'], "text",
GetSQLValueString($_POST['AG_titulo_ger'], "text",
GetSQLValueString($_POST['AG_titulo_fra'], "text",
GetSQLValueString($_POST['id_AG'], "int"); 
Puedes estudiarte las funciones que usé aqui:

http://cl.php.net/list
http://cl.php.net/explode
  #5 (permalink)  
Antiguo 14/12/2009, 15:25
 
Fecha de Ingreso: septiembre-2008
Mensajes: 5
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Ayuda con fechas por favor

Gracias de nuevo. Lo voy a probar nmediatamente.
Una cosa más:

¿cómo quedarían entonces los campos del formulario que muestran las fechas en formato DD/MM/YYYY?

Son estos:

Este es el código que utilizo para mostrar y recoger la Fecha de Inicio en DD/MM/YYYY:

<input name="AG_fechai" type="text" class="CP_loginFormFields" value="<?php echo date('d/m/Y',strtotime($row_eventosUpdate_RS['AG_fechai'])); ?>" size="32" />

Y este es el código que muestra y recoge la Fecha de Finalización en DD/MM/YYYY:

<input name="AG_fechaf" type="text" class="CP_loginFormFields" value="<?php echo date('d/m/Y',strtotime($row_eventosUpdate_RS['AG_fechaf'])); ?>" size="32" />
  #6 (permalink)  
Antiguo 14/12/2009, 15:44
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Respuesta: Ayuda con fechas por favor

No necesitan cambios, dado que sólo se necesita ese formato de fecha (Y/m/d) al grabar en mysql.
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 17:25.