как переформатировать строку datetime в php?

Я получаю datetime из плагина. Я ввел его в переменную:

$datetime = "20130409163705"; 

Это фактически переводит на yyyymmddHHmmss .

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

Я бы хотел, чтобы это было похоже на 09/04/2013 16:37:05 или 09-apr-2013 16:37:05 .

Как мне изменить порядок строк?

На данный момент я мог бы подумать, что нужно использовать substr для разделения даты и времени. Я все еще не уверен, как добавить дополнительные символы и изменить дату.

почему бы не использовать дату (), как показано ниже, попробуйте это

 $t = strtotime('20130409163705'); echo date('d/m/y H:i:s',$t); 

и будет выводиться

 09/04/13 16:37:05 

Для PHP 5> = 5.3.0 http://www.php.net/manual/en/datetime.createfromformat.php

 $datetime = "20130409163705"; $d = DateTime::createFromFormat("YmdHis", $datetime); echo $d->format("d/m/YH:i:s"); // or any you want 

Результат:

 09/04/2013 16:37:05 

Если вы хотите использовать substr() , вы можете легко добавить тире или слэши, как это.

 $datetime = "20130409163705"; $yyyy = substr($datetime,0,4); $mm = substr($datetime,4,6); $dd = substr($datetime,6,8); $hh = substr($datetime,8,10); $MM = substr($datetime,10,12); $ss = substr($datetime,12,14); $dt_formatted = $mm."/".$dd."/".$yyyy." ".$hh.":".$MM.":".$ss; 

С этого момента вы можете определить любое дальнейшее форматирование.

попробуй это

 $datetime = "20130409163705"; print_r(date_parse_from_format("Ymd His", $datetime)); 

выход:

 [year] => 2013 [month] => 4 [day] => 9 [hour] => 16 [minute] => 37 [second] => 5 

Вы можете сделать это так:

 <?php $datetime = "20130409163705"; $format = "YmdHis"; $date = date_parse_from_format ($format, $datetime); print_r ($date); ?> 

Вы можете посмотреть date_parse_from_format() и принятые значения формата.

Вы можете использовать функцию date_parse_from_format()

Проверьте эту ссылку .. вы получите четкое представление