Coger hora en PHP

eXtreM3

Holaaaa! Tengo una preguntilla, he estado mirando por foros y la verdad, no sé si serán las horas tempraneras pero no lo veo jeje, la cosa es la siguiente:

Tengo una BD en Sql en la que guardo un campo DATETIME, de manera que cuando se inserta un registro queda de la siguiente manera en la BD: yyyy-MM-dd hh:mm:ss.

Necesito obtener por separado los valores FECHA y HORA, la fecha ya la he conseguido sacar mediante una función que he hecho y la ayuda del str_to_time y str_replace. Lo que no consigo obtener es la hora.

Resumen para vagos: necesito obtener por separado la hora de un registro datetime, de manera que quede así en la web: "Registro 1, insertado el dd-MM-yyyy a las hh:mm". (la fecha ya la tengo, solo necesito la hora)

¿Alguien sabe cómo? graciasss

NeB1
$DATO_SACADO_DE_BD = "yyyy-mm-dd hh:mm:ss"

/*la función explode divide una cadena por donde tu le indiques 
(en este caso un espacio) y devuelve cada trozo (en este caso solo 2) en un array*/
$resultado=explode(" ",$DATOSACADODEBD);

echo "fecha : ".$resultado[0];
echo "<br>";
echo "hora : ".$resultado[1];

esto devolvería (si no me he equivocado en la sintaxis):

fecha : yyyy-mm-dd
hora : hh:mm:ss

será algo así, no?

eXtreM3

Voy a probarlo y te digo, gracias x contestar tan rápido ;)

l31m

la mejor forma es sacandola directamente desde la consulta:

SELECT DATE_FORMAT(fecha, '%h-%i-%s') as fecha;

Te recomiendo leer lo siguiente:
http://www.conclase.net/mysql/curso/index.php?fun=DATE_FORMAT

eXtreM3

Como me dijo NeB1 funcionó. También leeré lo tuyo l31m, tiene buena pinta ese método, gracias ;)

Así ha quedado, tal y como quería:

Podeis chapar el hilo!

NeB1

como dice #4 es más profesional, lo mio era en plan sencillete

27 días después
canhaya

Despues de hacer la consulta a la base de datos ($row) de donde quiero sacar la fecha meto esto:

setlocale ("LC_ALL","es_ES@euro","es_ES","esp");

$hora = date("H:i", $row[fecha]); 
$fecha = strftime("%A %d de %B", $row[fecha]);

echo "$fecha , $hora";

Asi lo hago yo para que me devuelva la fecha en español royo martes 25 de Agosto (si quieres el año tambien añades %Y)
El formato en que quieras sacar la hora solo es cuestion de cambiar el "H:i"

EtherMaN

Para usar #7 , deberías usar el formato timestamp obteniendo la fecha por ejemplo a partir de time().

Esta opción siempre es más manejable que jugar con un array donde aparezca la fecha ya que por ejemplo si tienes que comparar 2 fechas, con timestamp es mucho mas rápido y eficiente que jugar con arrays separando las cadenas.

Usuarios habituales

  • EtherMaN
  • canhaya
  • NeB1
  • eXtreM3
  • l31m