php date函数返回一个我没想到的结果

Imr*_*ado 2 php mysql datetime date

在我的mysql数据库中,我得到了一个时间戳字段,值为:

2013-01-30 01:15:00
2013-01-30 01:20:00
Run Code Online (Sandbox Code Playgroud)

我使用日期函数将其打印为24HOUR:MINUTE格式但我的时间结果错误.

mysql_query('SELECT time FROM locations ORDER BY time ASC');
...
echo "<td>" . date('H:i',$row['time']) . "</td>";
Run Code Online (Sandbox Code Playgroud)

两个记录的输出是:00:33,为什么?

Joh*_*nde 5

第二个参数date()是Unix时间戳.

描述

string date(string $ format [,int $ timestamp = time()])

使用给定的整数时间戳返回根据给定格式字符串格式化的字符串,如果没有给出时间戳,则返回当前时间.换句话说,timestamp是可选的,默认为time()的值.

echo "<td>" . date('H:i', strtotime($row['time'])) . "</td>";
Run Code Online (Sandbox Code Playgroud)

另一种解决方案是使用DateTime:

$datetime = new DateTime($row['time']);
echo $datetime->format('H:i');

// or in PHP5.5+
echo (new DateTime($row['time']))->format('H:i');
Run Code Online (Sandbox Code Playgroud)

参考: