Fecha en MySQL devuelve 1969-12-31

  • Autor Autor Isabel
  • Fecha de inicio Fecha de inicio
Isabel

Isabel

Zeta
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
Hola,
Hace más de tres horas que estoy dando vueltas con un script que funcionaba muy bien en mi servidor anterior.
Cuando obtengo la fecha guardada en un campo de la base de datos obtengo: 0000-00-00 00:00:00 con mi script original
PHP:
       $sqlConsulta = "select * from post order by fecha";

        $sqlRes = mysql_query($sqlConsulta, $enlace);

         while ($row = mysql_fetch_assoc($sqlRes)) {

            $id = $row['id'];
            $fecha =$row['fecha'];

            $fechaActual = date('Y-m-d H:i:s');


            if ($fechaActual > $fecha) {
                echo 'Posteo ' . $fecha . ' Mensaje ' . $mensaje . ' Url ' . $url . '<br>';

            } else {
			echo 'No hay nada para postear';
			echo '<br>'.$fechaActual;
                break;
            }

Y obtengo 1939-12-31 19:00:00 con estas modificaciones

PHP:
      $sqlConsulta = "select * from post order by date_format(fecha,'%Y-%m-%d %T')";

        $sqlRes = mysql_query($sqlConsulta, $enlace);

         while ($row = mysql_fetch_assoc($sqlRes)) {

            $id = $row['id'];
            $fecha = date("Y-m-d H:i:s",$row['fecha']);

            $fechaActual = date('Y-m-d H:i:s');


            if ($fechaActual > $fecha) {
                echo 'Posteo ' . $fecha . ' Mensaje ' . $mensaje . ' Url ' . $url . '<br>';

            } else {
			echo 'No hay nada para postear';
			echo '<br>'.$fechaActual;
                break;
            }
        }

La fecha aparece bien en la base de datos. Es un campo Datetime.

Ya no sé qué más probar. :s
 
¿Que problema tienes? Las fechas de la base de datos se devuelven y se almacena en formato anglosajón.
 
El segundo parámetro de date debe de ser Timestamp.
 
nota importante, todas las fechas que se almacenan en una base de datos se estructuran aaaa-mm-dd, la soluciones
son: 1.- Tomar la fecha y convertirla 2.- aprovechar los formatos de la función date()
 
Atrás
Arriba