2015-10-28 2 views
0

Я использую PHP для запроса базы данных DB2 AS400. Время (ADACTM) сохраняется в таблице подобно; ADACTM field in DB2 TablePHP - Как правильно отображать время?

Мне нужно преобразовать это в удобный для чтения формат, например 9:46:23.

В настоящее время я делаю это на PHP;

$adactm = str_split($fin2['ADACTM']); 
$adactm = "$adactm[0]$adactm[1]:$adactm[2]$adactm[3]:$adactm[4]$adactm[5]"; 

Проблема, когда время не имеет 2-значный час, PHP думает, что позиция массива-на самом деле позиция 1. Таким образом, время показывает, как;

94:62:3 

Если у кого-то есть способ исправить это, мы будем признательны. Благодаря!

ответ

1

Pad строку, прежде чем разбить его:

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

Затем разделить/калечить, как и прежде

+0

хорошее решение ... но чем вы получите 09:46:23 не 9:46:23 –

+0

твои работы тоже. Альтернативно: разделите строку. подсчитайте элементы, нажмите «0», если это необходимо. –

+0

Спасибо вам, ребята! Я не против иметь ведущий нулевой дисплей, поэтому мне нравится этот вариант, потому что он короткий. Спасибо за помощь! –

1

К сожалению, не лучшая идея, чем это:

$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]"; 
} 
Смежные вопросы