5

例如,当我echo['time']从数据库中获取

2012-07-21 17:00:00

我的问题是我应该如何只显示我得到的每个时间戳的小时和分钟?(17:00)

4

6 回答 6

13

您可以将其选择为:

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

于 2012-07-21T02:22:33.240 回答
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

演示

于 2012-07-21T02:23:11.117 回答
3

你可以照克里斯说的去做 echo date('H:i', strtotime('2012-07-21 17:00:00'));

但如果可能的话,最好从 MySQL 处理,

select date_format(time, '%H:%i') from table;

应该检索数据并将其格式化给您,一切顺利!

于 2012-07-21T02:24:42.837 回答
1

echo date('H:i', strtotime($row['time']));

或者您可以使用日期时间函数在您的 sql 查询中格式化

于 2012-07-21T02:21:53.350 回答
0
echo date('H:i', strtotime('2012-07-21 17:00:00'));
于 2012-07-21T02:21:32.447 回答
0

我使用我自己的代码。试试这个.. 请按照以下步骤操作:-
1. 从数据库表中选择时间假设:- $time = $row['time'];
2. 创建一个名为 :- "time.php" 的 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...
  1. 只需将文件包含在您想要以
    1 天前/ 30 天前......秒前..小时前..一个月前等 格式显示时间的其他 php 文件中。
于 2016-08-07T13:23:40.640 回答