PHP-如何正确显示时间?

PHP-如何正确显示时间?,php,sql,database,db2,Php,Sql,Database,Db2,我正在使用PHP查询AS400 DB2数据库。时间(ADACTM)保存在表格中,如图所示; 我需要把它转换成一种人类可读的格式,比如9:46:23 我目前正在用PHP做这件事 $adactm = str_split($fin2['ADACTM']); $adactm = "$adactm[0]$adactm[1]:$adactm[2]$adactm[3]:$adactm[4]$adactm[5]"; 问题是,当时间没有两位数的小时时,PHP认为数组位置0实际上是位置1。因此,时间显示出这样的

我正在使用PHP查询AS400 DB2数据库。时间(ADACTM)保存在表格中,如图所示;

我需要把它转换成一种人类可读的格式,比如9:46:23

我目前正在用PHP做这件事

$adactm = str_split($fin2['ADACTM']);
$adactm = "$adactm[0]$adactm[1]:$adactm[2]$adactm[3]:$adactm[4]$adactm[5]";
问题是,当时间没有两位数的小时时,PHP认为数组位置0实际上是位置1。因此,时间显示出这样的趋势

94:62:3

如果有人有办法解决这个问题,我们将不胜感激。谢谢

对不起,没有比这更好的主意了:

$adactm = str_split($fin2['ADACTM']);

if (count($adactm) == 5) {
    $adactm = "$adactm[0]:$adactm[1]$adactm[2]:$adactm[3]$adactm[4]";
} else {
    $adactm = "$adactm[0]$adactm[1]:$adactm[2]$adactm[3]:$adactm[4]$adactm[5]";
}
拆分前的字符串:

$rawtime = '94623';
$padded = str_pad($rawtime, 6, '0', STR_PAD_LEFT); // 094623

然后像以前一样拆分/撕碎

很好的解决方案。。。但是你会得到09:46:23,而不是9:46:23,你的工作也很好。或者:拆分字符串。计算元素数,必要时按“0”。感谢你们两位!我不介意使用前导零显示,所以我喜欢这个选项,因为它很短。谢谢你的帮助!此外,您还可以将填充的号码放入
DateTime::createFromFormat
调用中,这样您将得到一个可以根据需要进行格式化/操作的号码:
$date=DateTime::createFromFormat('His',str_pad('rawtime,6,'0',stru pad_LEFT))。然后您可以执行
echo$date->format('H:i:s')或您希望以何种方式输出它。