Foros del Web » Programando para Internet » PHP »

fechas

Estas en el tema de fechas en el foro de PHP en Foros del Web. Hola tengo dos fechas recibidas por formularioa a través de calendarios en javascript que me las dejan en este formato 04/04/2009 24/04/2009 Luego lo que ...
  #1 (permalink)  
Antiguo 01/04/2009, 03:12
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 22 años, 5 meses
Puntos: 8
fechas

Hola tengo dos fechas recibidas por formularioa a través de calendarios en javascript que me las dejan en este formato
04/04/2009
24/04/2009

Luego lo que hago es convertilas al estilo Date para la bd mysql
$salida = strtotime($datos['arrive']);
$llegada = strtotime($datos['leave']);

$DateArrive = date("Y-m-d",$salida);
$DateLeave = date("Y-m-d",$llegada);

$DateYet=date("Y-m-d");

Y despúes envía un mail con la fecha de llegada y salida , pero el extraño problema que tengo es que una u otra la convierte de este modo:

Llegada: 2009-04-04

Salida: 1970-01-01

Es decir que pone año 2007

¿Alguien me puede dar una explicación lógica y a ser posible una solución?.

Otra cosilla
¿Se puede guardar en la bd la fecha en formato 23/04/2009 ? ¿Que tipos de datos debo seleccionar en mysql para guardarlo de esta forma?.


Un millón de gracias.

Última edición por Dundee; 01/04/2009 a las 03:22
  #2 (permalink)  
Antiguo 01/04/2009, 04:00
 
Fecha de Ingreso: marzo-2009
Mensajes: 171
Antigüedad: 15 años, 8 meses
Puntos: 4
Respuesta: fechas

A mejor solución te cuento la mía. Como me harté de los problemas que me daba almacenar las fechas en base de datos y formatear fechas de bases de datos a formato inteligible con el formato dd/mm/aaaa al final hice una función que me permitiese ordenar según el criterio que considere y poder intercambior los guiones o barras de la fecha a voluntad.

Te doy código de ejemplo:

<?php
$fecha='06/04/1973'; //6 de Abril de 1973

echo turndate($fecha,'/','-',array(0,1,2)).'<br>'; //devolverá 1973-04-06
echo turndate($fecha,'/','/',array(0,1,2)).'<br>'; //devolverá 1973/04/06
echo '<br>';
$fecha='1973-04-06'; //6 de Abril de 1973
echo turndate($fecha,'-','/',array(0,1,2)).'<br>'; //devolverá 1973/04/06
echo turndate($fecha,'-','@@@@',array(0,1,2)).'<br>'; //devolverá 1973@@@@04@@@@06

function turndate($fecha,$separateactual,$newseparate,$orde n){
$fecharray=getSplit($fecha,$separateactual);
$newarray=array();
$cadenafecha='';
for($i=(count($fecharray)-1);$i>=0;$i--)
$newarray[count($newarray)]=$fecharray[$i];
$cadenafecha.=$newarray[$orden[0]].$newseparate;
$cadenafecha.=$newarray[$orden[1]].$newseparate;
$cadenafecha.=$newarray[$orden[2]];
return $cadenafecha;
}
function getSplit($cadena,$separador){ //devuelve un array en palabras de una cadena dada excluyendo el separador.
$parametros=spliti($separador,$cadena);
return $parametros;
}
?>
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 12:55.