форматирование строки даты для таблицы html

Может ли кто-нибудь показать мне, как изменить эту отметку даты и распечатать ее в таблице 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


person jdamae    schedule 03.09.2010    source источник
comment
-1 за совсем недавний обман. Явно не искал сначала.   -  person Theodore R. Smith    schedule 03.09.2010


Ответы (2)


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

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

РЕДАКТИРОВАТЬ: Да, вы также можете использовать эхо

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< /а>

person satya    schedule 03.09.2010
comment
Могу ли я поместить эту функцию в оператор эха для динамической печати? - person jdamae; 03.09.2010
comment
ок, спасибо повезло. Я просто запутался, куда встроить это с помощью тегов <td>. - person jdamae; 03.09.2010
comment
Вы можете держать там, где печатаются ваши данные. Например, я предполагаю, что именно так вы печатаете данные echo '‹td›' . $строка[$столбец]; эхо '‹td›' . date(Y-m-d H:i:s,strtotime($row[$column])) ; - person satya; 03.09.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
person Community    schedule 03.09.2010
comment
спасибо РК. Я убрал это условие (см. мое редактирование). Что касается форматирования, вставил бы я $date_s в теги <td>, как я сделал в своем foreach? еще раз спасибо. - person jdamae; 03.09.2010
comment
Нет, вам не нужно использовать $date->format(...) в вашем TD. (примечание: в вашем вопросе теперь отсутствует </td>) - person ; 03.09.2010