problemas con fechas php--->MySQL

jomacmu
23 de Enero del 2004
Hola, tengo un formulario donde el usuario mete la fecha. Quiero ke meta la fehca en formato DD-MM-YYYY y que se guarde en la base de datos con formato YYYY-MM-DD ya que es el ke tiene MySQL por defecto.

Como puedo hacer esto??? existe otra solucion????

pe
23 de Enero del 2004
como sabras la fecha se guarda como string entonces
puedes hacer lo sgte:

$Dia = $fecha[0].$fecha[1];
$Mes = $fecha[3].$fecha[4];
$Anio = $fecha[6].$fecha[7].$fecha[8].$fecha[9];
y lo concatenas

$NuevaFecha = $Anio."-".$Mes."-".$Dia

kilol
23 de Enero del 2004
no le hagas caso a pablo es un idiota para aconsejar eso lo que dice pe se ve un poco mas decente

iron-phoenix
23 de Enero del 2004
yo a mi gusto no uso los formatos de fecha de mysql lo guardo como timestamp.

De todas formas tienes una funcion de mysql que es :

SELECT DATE_FORMAT(campo_fecha, '%e %M %Y') FROM tabla;

de todas formas lo que dice pablo si le he entendido bien tampoco es tan loco, puedes hacer un CONCAT() y dentro con las funciones:
DAYOFMONTH
MONTH
YEAR
sacar los datos como quieras
si no me equivoco sería algo asi:
SELECT CONCAT(DAYOFMONTH(campo_fecha),'/',MONTH(campo_fecha),'/',YEAR(campo_fecha)) FROM tabla;

Saludos!! :)

iron-phoenix
23 de Enero del 2004
Bueno ok no preguntabas como obtener los datos sino como guardarlos, sorry:

que te parece asi?

$fecha = "DD/MM/YYYY"; // eso es lo que metería el usuario en el campo de texto
$aFecha = explode("/",$fecha);
$nFecha = $aFecha[3]."-".$aFecha[2]."-".$aFecha[1];
print $nFecha; // eso imprimira: YYYY-MM-DD

juancho3000
23 de Enero del 2004
como se haria para por ejemplo si el usuario a introducido algo en una fecha determinada y hasta otra fecha determinada saliese un cartelito "nuevo",por que me esta matando....

pablo
23 de Enero del 2004
hola!, deberias utilizar objetos select para que el usuario te elija la fecha: uno para el dia, otro para el mes y otro para el año, luego tu rescatas esa información por separado y le das el formato que desees ej; $fecha = $anio."-".$mes."-".$dia