使用PHP修剪/正确显示Time MySQL数据类型

时间:2011-07-29 13:07:49

标签: php mysql time

这里的第一个问题,如果这看起来很明显,请原谅我。我在MySQL数据库中使用'TIME'数据类型时遇到了一些问题,并试图找到在时间戳开头修剪前导零的最佳方法。

更具体地说,我的数据库中有一个歌曲表,在该表中我有一个song_length列。此列使用Time数据类型,因此表示始终为hh:mm:ss。

如果我的歌只有3分42秒(例如),我希望将其显示为简单:3:42,而不是00:03:42。是否有内置的PHP函数(可能类似于date())来处理这样的事情?

2 个答案:

答案 0 :(得分:1)

date()您需要确保在$hours > 0

时使用其他格式
$d = new DateTime($time);
echo $d->format('H') > 0
   ? ltrim($d->format('H:i:s'), '0') 
   : ltrim($d->format('i:s'),   '0');

http://ideone.com/eAWun

答案 1 :(得分:0)

将其拆分为数组,然后将每个部分转换为int

$time = '00:03:42';
$parts = explode(':', $time);
$hours = (int) $parts[0];
$minutes = (int) $parts[1];
$seconds = (int) $parts[2];

如果我是你,我会将时间存储为表示秒数的整数。