Может ли кто-нибудь дать мне быстрый и грязный способ разделить дату и время (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);