当我从数据库中echo['time']
时,我得到了
2012-07-21 17:00:00
我的问题是我应该如何只显示每个时间戳的小时和分钟? (17:00)
答案 0 :(得分:12)
您可以选择它:
SELECT TIME_FORMAT(`dateColumn`, '%H:%i') FROM ...
或使用其他答案中提到的strtotime
。
如果您确实需要使用秒的全部时间,您还可以使用:
SELECT TIME(`dateColumn`) FROM ...
请参阅http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
答案 1 :(得分:6)
您应该正确解析它并使用DateTime类回显您想要的内容:
$time = '2012-07-21 17:00:00';
$date = DateTime::createFromFormat( 'Y-m-d H:i:s', $time, new DateTimeZone( 'America/New_York'));
echo $date->format( 'H:i'); // Will print 17:00
答案 2 :(得分:3)
你可以做克里斯所说的
echo date('H:i', strtotime('2012-07-21 17:00:00'));
但如果可能的话,最好从MySQL进行处理,
select date_format(time, '%H:%i') from table;
应该检索数据并将其格式化为你好!
答案 3 :(得分:1)
echo date('H:i', strtotime($row['time']));
或者您可以使用datetime functions
在sql查询中进行格式化答案 4 :(得分:0)
echo date('H:i', strtotime('2012-07-21 17:00:00'));
答案 5 :(得分:0)
我使用自己的代码。试试这个..
请按以下步骤操作: -
1.从数据库表中选择时间假设: - $ time = $ row [' time'];
2.创建一个名为的文件: - " time.php"
3.将以下代码粘贴到time.php中
<?php
$ct= date('Y-m-d H:i:s');
$now = new DateTime("$ct");
$ref = new DateTime("$time");
$diff = $now->diff($ref);
$y=$diff->y;
$m=$diff->m;
$d=$diff->d;
$h=$diff->h;
$i=$diff->i;
$s=$diff->s;
if($m>12)
{
echo $y;
echo " year ago";
}
elseif($m<1 && $d<1 && $h<1 && $i<1 && $s<60)
{
echo $s;
echo " sec ago";
}
elseif($m<1 && $d<1 && $h<1 && $i<60)
{
echo $i;
echo " mins ago";
}
elseif($m<1 && $d<1 && $h<48)
{
echo $h;
echo " hrs ago";
}
elseif($m<1 && $d<30 && $h<24)
{
if($d==1)
{
echo 24+$h." hrs ago";
}
else
{
echo $d;
echo " days ago";
}
}
elseif($m<=12)
{
if($m > 0)
{
echo $m;
echo " Month ago";
}
else
{
echo $d;
echo " days ago";
}
}
?>
<?php include "time.php";?> //use include/require function where you want to display time ago...