2012-04-02 38 views
14

en mi base de datos tengo una columna de marca de tiempo ... que refleja un formato como este: 2012-04-02 02:57:54hora y la fecha del sello de tiempo con php

Sin embargo, me gustaría separar ellos hasta $date y $time.

después de algunas investigaciones a través del manual de php ... me encontré con que la fecha(), date_format() y strtotime() son capaces de ayudarme a separarlos ... (no sé si estoy en lo cierto)

pero no estoy muy seguro de cómo codificarlo ...

En mi archivo php ... la marca de tiempo extraída sería $ row ['DATETIMEAPP'].

Will

$date= strtotime('d-m-Y',$row['DATETIMEAPP']); 
$time= strtotime('Gi.s',$row['DATETIMEAPP']); 

o

$date= date('d-m-Y',$row['DATETIMEAPP']); 

trabajo?

¿Puedo usar date() para obtener el tiempo también?

Gracias de antemano

+0

¿Por qué es esta pregunta no es útil ??solo quiero saber cuál es la mejor manera de obtener el valor 2 de la marca de tiempo – Hubert

+0

posible duplicado de [¿Cómo extraer solo el valor 'Día' de la cadena 'Fecha'? completa]] (http://stackoverflow.com/questions/4275599/how -to-extract-only-day-value-from-full-date-string) – deceze

+0

no lo puedo intentar porque tengo otros errores en la página ... quiero saber si esto juega un papel en causar el error. ..Gracias – Hubert

Respuesta

45
$timestamp = strtotime($row['DATETIMEAPP']); 

le da marca de tiempo, que luego se puede usar la fecha al formato:

$date = date('d-m-Y', $timestamp); 
$time = date('Gi.s', $timestamp); 

Alternativamente

list($date, $time) = explode('|', date('d-m-Y|Gi.s', $timestamp)); 
+0

Gracias por la respuesta. – Hubert

+2

@Hubert Puede agradecerme aceptando mi respuesta :) http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

+0

Esta es la mejor y más fácil respuesta. Ayudó mucho. –

2
$mydatetime = "2012-04-02 02:57:54"; 
$datetimearray = explode(" ", $mydatetime); 
$date = $datetimearray[0]; 
$time = $datetimearray[1]; 
$reformatted_date = date('d-m-Y',strtotime($date)); 
$reformatted_time = date('Gi.s',strtotime($time)); 
5

Si usted no quiere cambiar el formato de la fecha y el tiempo de la marca de tiempo, puede utilizar la función explode en php

$timestamp = "2012-04-02 02:57:54" 
$datetime = explode(" ",$timestamp); 
$date = $datetime[0]; 
$time = $datetime[1]; 
+1

list ($ date, $ time) = explode ('', '2014-11-21 16:38:00'); – zzapper

-1

Opcionalmente puede utilizar la función de base de datos para el formato de fecha/hora. Por ejemplo, en consulta MySQL uso:

SELECT DATE_FORMAT(DATETIMEAPP,'%d-%m-%Y') AS date, DATE_FORMT(DATETIMEAPP,'%H:%i:%s') AS time FROM yourtable 

Creo que más bases de datos proporciona soluciones para el formato de fechas demasiado

1
$timestamp='2014-11-21 16:38:00'; 

list($date,$time)=explode(' ',$timestamp); 

// el tiempo justo

preg_match("/ (\d\d:\d\d):\d\d$/",$timestamp,$match); 
echo "\n<br>".$match[1]; 
0

Obras para mí:

select DATE(FROM_UNIXTIME(columnname)) from tablename; 
0

Se puede probar esto:

Para Fecha:

$date = new DateTime($from_date); 
$date = $date->format('d-m-Y'); 

Por Hora:

$time = new DateTime($from_date); 
$time = $time->format('H:i:s'); 
Cuestiones relacionadas