将日期时间拆分为日期和时间值

时间:2011-04-03 19:55:29

标签: php mysql

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

干杯

7 个答案:

答案 0 :(得分:22)

如果您使用的是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给出了一个很好的答案。

答案 1 :(得分:10)

如果你的数据来源是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'

答案 2 :(得分:8)

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

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

  

如果你想从你的Mysql中解析日期并想要删除时间   然后你可以使用这个功能

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

答案 5 :(得分:0)

一个简单的指令就可以解决这个问题

explode会将datetime转换为数组

和list会将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); 
&#13;
&#13;
&#13;

答案 6 :(得分:0)

我们可以在MySQL中轻松地将DateTime(28-1-2011 14:32:55)拆分为日期和时间。

select SUBSTRING_INDEX("28-1-2011 14:32:55", " ",1) into @dateOnly;

select @dateOnly;

输出将为- 2011年1月28日(这里我们从DateTime中拆分日期)

select SUBSTRING_INDEX("28-1-2011 14:32:55", " ",-1) into @timeOnly;

select @timeOnly;

输出将为- 14:32:55 (这里我们将时间与DateTime分开了)

我们也可以隐瞒上午和下午的时间格式

select SUBSTRING_INDEX("28-1-2011 14:32:55", " ",-1) into @timeOnly;

SELECT TIME_FORMAT(@timeOnly, "%h %i %s %p")into @time;

select @time;

时间格式将变为 02 32 55 PM