2011-04-03 23 views
11

¿Puede alguien darme una forma rápida y sucia de dividir una fecha y hora (28-1-2011 14:32:55) en la fecha (28-1-2011) y el hora (14:32) o incluso mejor (2:32 PM) usando PHP. Usando una base de datos mySQL también.Fecha y hora de división en una fecha y un valor de tiempo

Saludos

+0

¿Qué quiere decir con "una fecha y hora" exactamente? ¿Una cadena o un objeto 'DateTime'? –

+0

Tengo un calendario emergente en mi página web y devuelve una cadena como 28-1-2011 14:32:55. Pero en mi base de datos tengo una columna de fecha y una columna de tiempo. Entonces en PHP solo quiero dividirlos en 2 variables separadas. –

Respuesta

10

si su fuente de datos es MySQL:

SELECT DATE(date_field) AS date_part, TIME(date_field) AS time_part .... 

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_time

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date

Editar: para contestar la pregunta de comentarios (ejemplo):

WHERE DATE(date_field) > '2017-01-01' 
+1

Sí ... obtenga la respuesta ya dividida de la consulta en lugar de duplicar el esfuerzo analizando en PHP. – DRapp

+0

Es más rápido, pero a veces es necesario hacerlo en PHP. –

+0

cómo usar 'date_part' en' where' condición ?? –

6

En php puede usar las funciones date y strtotime para una fácil extracción.

$datetime = "28-1-2011 14:32:55"; 
$date = date('Y-m-d', strtotime($datetime)); 
$time = date('H:i:s', strtotime($datetime)); 
+0

perfecto gracias mucho –

19

Si está usando PHP> 5.2:

$myvalue = '28-1-2011 14:32:55'; 

$datetime = new DateTime($myvalue); 

$date = $datetime->format('Y-m-d'); 
$time = $datetime->format('H:i:s'); 

Antes de PHP 5.2 mhitza dio una buena respuesta.

+0

(nota al margen) Tenga en cuenta que el objeto DateTime utiliza la zona horaria predeterminada establecida en php.ini, si no se modifica por código. ¡Siempre configure la zona horaria! Sin embargo, este es el código correcto para +1. – Wh1T3h4Ck5

+0

Cualquiera tiene pensamientos de sobrecarga de estos versículos usando date_parse() – Abela

0

Si busca una solución realmente rápida y sucia.

$datetime = "28-1-2011 14:32:55"; 
$date_arr= explode(" ", $datetime); 
$date= $date_arr[0]; 
$time= $date_arr[1]; 
0

si desea analizar en la fecha de su MySQL y desea eliminar el tiempo a continuación, puede utilizar esta función

$date1=date("Y-m-d",strtotime('$your database field')) 
0

Una simple instrucción hará el truco

explotar transformará la fecha y hora en una matriz

y la lista va a ordenar la matriz de fecha y hora en sus valores necesarios

$datetime = "28-1-2011 14:32:55"; 
 
list($date, $time)=explode(' ', $datetime); 
 

 
// check the result 
 
echo "date:". $date; 
 
echo "<br>time:". $time; 
 

 
// further more you can easily split the date into 
 
// year month and day 
 
list($year, $month, $day)=explode('-', $date);

Cuestiones relacionadas