Разделение даты и времени на дату и значение времени

Может ли кто-нибудь дать мне быстрый и грязный способ разделить дату и время (28-1-2011 14:32:55) на дату (28-1-2011) и время (14:32) или даже лучше (2: 32 PM) с использованием PHP. Также используйте базу данных mySQL.

ура

Если вы используете PHP> 5.2:

 $myvalue = '28-1-2011 14:32:55'; $datetime = new DateTime($myvalue); $date = $datetime->format('Ym-d'); $time = $datetime->format('H:i:s'); 

До PHP 5.2 mhitza дал хороший ответ.

если источником данных является 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

Изменить: ответить на вопрос из комментариев (пример):

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

В php вы можете использовать функции date и strtotime для легкого извлечения.

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

Если вы ищете действительно быстрое и грязное решение.

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

если вы хотите проанализировать дату с вашего Mysql и хотите удалить время, вы можете использовать эту функцию

 $date1=date("Ymd",strtotime('$your database field')) 

Одна простая инструкция сделает трюк

explode преобразует datetime в массив

и список сортирует массив datetime в его необходимые значения

 $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);