将日期时间分割成日期和时间值

问题描述:

有人可以给我一个快速和肮脏的方式来将日期时间(28-1-2011 14:32:55)分成日期(28-1-2011)和日期时间(14:32)甚至更好(2:32 PM)使用PHP。也使用mySQL数据库。将日期时间分割成日期和时间值

干杯

+0

你所说的“日期时间”究竟指什么?一个字符串或'DateTime'对象? – 2011-04-03 19:57:12

+0

我在我的网页上有一个弹出日历,它返回一个字符串为28-1-2011 14:32:55。但在我的数据库中有一个Date列和一个Time列。所以在PHP中,我只是想将它们分成2个独立的变量。 – 2011-04-03 20:03:35

如果您的数据源是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' 
+1

是...从查询中获得已经分离的答案,而不是通过在PHP中解析来重复工作。 – DRapp 2012-02-08 14:07:51

+0

速度更快,但有时需要用PHP来完成。 – 2014-01-01 00:28:40

+0

如何在'where'条件中使用'date_part'? – 2017-03-25 12:33:44

在php中,您可以使用datestrtotime函数轻松提取。

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

非常感谢很多 – 2011-04-03 20:06:55

如果你使用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'); 

此前PHP 5.2 mhitza给了一个很好的答案。

+0

(旁注)请注意,DateTime对象使用php.ini中设置的默认时区,如果未通过代码进行更改。始终设置时区!但是,这是+1的正确代码。 – Wh1T3h4Ck5 2011-04-03 21:06:02

+0

任何人都有使用date_parse()的经文开销的想法 – Abela 2013-05-31 23:44:22

如果你正在寻找一个非常快速和肮脏的解决方案。

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

如果你想从你的MySQL的日期来解析和要删除的时间 那么你可以使用此功能

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

一个简单的指令就可以了

爆炸会将日期时间转换为数组

和列表将日期时间排序数组到其需要的值

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