форматирование строки даты для HTML таблицы - PullRequest
0 голосов
/ 03 сентября 2010

Может кто-нибудь показать мне, как изменить эту дату и распечатать ее в HTML-таблице?

У меня есть входной файл с этим форматом отметки времени:

4-Start=20100901180002

Этот формат времени хранится таким образом в массиве. Я распечатываю массив так, чтобы создать HTML-таблицу:

foreach ($data as $row){
   $counter ++;                                        
   $class = $counter % 2 === 0 ? 'alt1' : 'alt2';       
   echo '<tr class="' . $class . '">';                  

     foreach ($keys as $column)                 
        if (isset($row[$column])){              
          echo '<td>' . $row[$column];
          } else {
          echo '<td>' . '' . '</td>';
        }
}
echo '</table>';

Как мне изменить метку времени в этой таблице на эту? 2010-09-01 18:00:02

Ответы [ 2 ]

2 голосов
/ 03 сентября 2010

Это то, что вы ищете, http://de2.php.net/manual/en/function.strtotime.php

Есть похожий вопрос, от которого вы также можете получить больше информации .. Как мне отформатировать дату и время, полученные из базы данных

EDIT: Да, вы также можете использовать это эхо

echo date("Y-m-d H:i:s",strtotime('20100901180002')) ; // 2010-09-01 18:00:02

Вы можете даже использовать CreateFromFormat, как сказал RC, это использует CreateFromFormat в процедурном стиле.

 $date = date_create_from_format("YmdHis", '20100901180002');
 echo date_format($date, 'Y-m-d H:i:s');  // 2010-09-01 18:00:02

См. http://php.net/manual/en/datetime.createfromformat.php

1 голос
/ 03 сентября 2010

Эта часть странная, по моему мнению, elseif никогда не достигается.

if (isset($row[$column])){
   echo '<td>' . $row[$column] . '</td>';
} elseif ($column == 'Condition') {
   echo '<td> Error </td>';
} else {
   echo '<td> </td>';
}

Относительно вашего формата вопроса:

// PHP > 5.2
$date_s = "" . $row['Start'];
$date =  DateTime::createFromFormat("YmdHis", $date_s);
echo $date->format("Y-m-d H:i:s"); // 2010-09-01 18:00:02
...