Ver Mensaje Individual
  #7 (permalink)  
Antiguo 19/10/2008, 23:40
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Tengo problemas con fecha DATETIME

Hola,

Cita:
Iniciado por edumarbella Ver Mensaje
... tengo un string con "30/11/1970" ...
$timestamp = strtotime($pParams['fechatitulacion']);
$fecha = date("Y-m-d h:i:s",$timestamp);
El inconveniente con strtotime() en este caso, es que espera una fecha en formato inglés americano de entrada, mes - día - año; o su equivalente en varios formatos. '30/11/1970' invariablemente va a ser '1970-01-01 01:00:00', puesto que strtotime() devolvió un índice de error -1.


Las fechas en MySQL deben ser Y-m-d (o en su defecto Ymd). SQL Server también puede interpretar 'Ymd'. Suponiendo que la fecha que recibes en el post, tiene formato 'britanico', y está separada por diagonales. (No tomando en cuenta el time del datetime, el cual va a ser 00:00:00) :

Código PHP:
<?php

$fecha 
'30/11/1970';
$fechb explode('/'$fecha);

if(
checkdate($fechb[1], $fechb[0], $fechb[2])) {
  echo 
sprintf(
    
"INSERT INTO tabla (id, fecha) VALUES (1, %s);",
    
date('Ymd'mktime(000$fechb[1], $fechb[0], $fechb[2])));
  echo 
"\n"#<-- no es parte de la instrucción sql.
} else {
  echo 
"Formato Incorrecto.\n";
}
?>
Saludos,

ps:

No es la única forma de crear la instrucción SQL, ni la mejor ... pero funciona de acuerdo a cualquier i18n que tengas en el servidor; una vez la fecha de entrada recibida en el post, tenga el formato adecuado (d/m/a).

Última edición por HackmanC; 19/10/2008 a las 23:57 Razón: ps