php - помогает преобразовать строку метки времени в читаемый формат времени - PullRequest
6 голосов
/ 03 сентября 2010

У меня есть запись с именем Time со следующей строкой даты: 20100902040003 во входном файле.

Мне нужна помощь php, чтобы преобразовать это во что-то более читаемое, например в этот формат: 2010-09-02 04:00:03 и хотел бы отформатировать его при печати данных таблицы.

Ответы [ 4 ]

10 голосов
/ 03 сентября 2010
$timestamp = "20100902040003";
echo date('Y-m-d H:i:s', strtotime($timestamp)); // output: 2010-09-02 04:00:03
2 голосов
/ 03 сентября 2010

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

$timestamp = "20100902040003";
preg_replace('/(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)/', 
             '\1-\2-\3 \4:\5:\6', $timestamp)

Выходы:

2010-09-02 04:00:03
2 голосов
/ 03 сентября 2010

Если вы уверены, что все записи во входном файле имеют формат YYYYMMDDHHmmss, вы можете попытаться разбить строку самостоятельно, а затем использовать date() в сочетании с mktime() для создания значимого формата даты.

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

Поскольку отметка времени не является отметкой времени Unix, вы должны использовать substr()

$timestamp = "20100902040003";

$year = substr($timestamp, 0, 3);
$month = substr($timestamp, 4, 5);
$day = substr($timestamp, 6, 7);
$hour = substr($timestamp, 8, 9);
$minute = substr($timestamp, 10, 11);
$second = substr($timestamp, 12, 13);

Затем вы организуете это с помощью sprintf()

$formatted_timestamp = sprintf('%s-%s-%s %s:%s:%s', $year, $month, $day, $hour, $minute, $second);
...