Foros del Web » Programando para Internet » PHP »

convertir fecha

Estas en el tema de convertir fecha en el foro de PHP en Foros del Web. Hola, tengo en un formulario una fecha con formato largo, digamos hoy: martes, 13 de julio del 2010 al recibir la fecha en el formulario ...
  #1 (permalink)  
Antiguo 13/07/2010, 21:00
 
Fecha de Ingreso: septiembre-2007
Mensajes: 14
Antigüedad: 16 años, 7 meses
Puntos: 0
convertir fecha

Hola, tengo en un formulario una fecha con formato largo, digamos hoy: martes, 13 de julio del 2010 al recibir la fecha en el formulario para grabar en mysql tengo que pasarla a formato mysql, alguien podria decirme como paso este formato a fecha aammdd
Gracias.
  #2 (permalink)  
Antiguo 13/07/2010, 22:15
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 16 años
Puntos: 9
Respuesta: convertir fecha

¿Por qué tenés en un formulario una fecha en ese formato?

¿Podés poner el código para ver como armás el formulario? porque quizás la solución sea modificar eso.
__________________
Saludos.

Gustavo
  #3 (permalink)  
Antiguo 14/07/2010, 00:39
 
Fecha de Ingreso: septiembre-2007
Mensajes: 14
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: convertir fecha

lo que sucede es que es un calendario y la presento de esa manera por que el documento se ve mejor asi, pero claro tampoco es que no se pueda presentar de la manera clasica, pero supuse que asi como hay una manera de cambiar el formato a español habria otra manera de regresar a su forma original, este es el calendario.

<td width="212px"><input type="text" name="fechaEmi" value="<?php setlocale (LC_ALL,"es_ES@euro","es_ES","esp");
echo strftime("%A, %d de %B del %Y");?>" id="f_date_c" size="35" maxlength="40" readonly />
<script type="text/javascript">
Calendar.setup
({
inputField : "f_date_c", // id of the input field
ifFormat : "%A, %d de %B del %Y", // format of the input field
button : "f_trigger_c", // trigger for the calendar (button ID)
align : "cR", // alignment (defaults to "Bl")
singleClick : true
});
</script>
</td>

Gracias por responder, a ver si me quedo de esa manera y hay una salida o ni modo a presentarla como dd-mm-aaaa.
  #4 (permalink)  
Antiguo 14/07/2010, 02:07
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 16 años
Puntos: 9
Respuesta: convertir fecha

Probá con esta función:

Código PHP:
<?php
$f
="martes, 13 de julio de 2010";
$fSQL=convertirFecha($f);

function 
convertirFecha($fecha) {
     
$fecha=preg_replace(array("/^[a-zéá]+\, /i""/ de[l]? /i""/enero/i""/febrero/i""/marzo/i""/abril/i""/mayo/i""/junio/i""/julio/i""/agosto/i""/septiembre/i""/octubre/i""/noviembre/i""/diciembre/i"), array("""-""01""02""03""04""05""06""07""08""09""10""11""12"), trim($fecha));
     if (
strlen($fecha)==9$fecha="0$fecha";
     
$fecha=substr($fecha64)."-".substr($fecha32)."-".substr($fecha02);
     return 
$fecha;
}
?>
__________________
Saludos.

Gustavo

Última edición por Gustavo72; 14/07/2010 a las 17:41
  #5 (permalink)  
Antiguo 14/07/2010, 17:11
 
Fecha de Ingreso: septiembre-2007
Mensajes: 14
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: convertir fecha

Gracias Gustavo, todo bien, salvo un lapsus dedo, es que el mes 7 se repite y no funcionaba el mes 8, si alguien lo quiere que cambie eso, gracias nuevamente.

Saludos
  #6 (permalink)  
Antiguo 14/07/2010, 17:44
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 16 años
Puntos: 9
Respuesta: convertir fecha

Cita:
Iniciado por wanmr Ver Mensaje
Gracias Gustavo, todo bien, salvo un lapsus dedo, es que el mes 7 se repite y no funcionaba el mes 8, si alguien lo quiere que cambie eso, gracias nuevamente.

Saludos
Corregido en el mensaje! y bueno, eran las 5 de la mañana en mi país!
__________________
Saludos.

Gustavo
  #7 (permalink)  
Antiguo 15/07/2010, 01:37
 
Fecha de Ingreso: septiembre-2007
Mensajes: 14
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: convertir fecha

Respecto a este mismo tema, a traido a colacion otro problema, no he tenido problemas con las tildes ni ñ en la BD, en el calendario cambie el miércoles y sábado por sus respectivos valores y funciona bien, pero la primera ves que carga el calendario si es miércoles pone .. mi�rcoles, 14 de julio del 2010 y esto hace fallar a la rutina que Gustavo desarrollo, llega basurita y si quito esta linea del encabezado <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> se arregla el calendario, pero se me malogra todos los datos que vienen de la BD, como hago para que ambos funcionen bien.
Gracias de antemano a quien de una solución.
  #8 (permalink)  
Antiguo 15/07/2010, 03:08
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 16 años
Puntos: 9
Respuesta: convertir fecha

Probá con:

Código HTML:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> 
o con:

Mi&eacute;rcoles
S&aacute;bado

A ver si soluciona algo
__________________
Saludos.

Gustavo
  #9 (permalink)  
Antiguo 15/07/2010, 03:16
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 16 años
Puntos: 9
Respuesta: convertir fecha

O sino probá la función así:

Código PHP:
<?php
$f
="miércoles, 14 de julio de 2010";
$fSQL=convertirFecha($f);

function 
convertirFecha($fecha) {
     
$fecha=preg_replace(array("/^.+\, /i""/ de[l]? /i""/enero/i""/febrero/i""/marzo/i""/abril/i""/mayo/i""/junio/i""/julio/i""/agosto/i""/septiembre/i""/octubre/i""/noviembre/i""/diciembre/i"), array("""-""01""02""03""04""05""06""07""08""09""10""11""12"), trim($fecha));
     if (
strlen($fecha)==9$fecha="0$fecha";
     
$fecha=substr($fecha64)."-".substr($fecha32)."-".substr($fecha02);
     return 
$fecha;
}
?>
__________________
Saludos.

Gustavo

Etiquetas: fechas
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 18:05.