2017-01-16 2 views
2

Я пытаюсь отформатировать существующую дату с помощью PHP, но она не работает должным образом. Мой код ниже:Невозможно форматировать дату по требованию с помощью PHP

$edate="03/12/2016 12:01:43 PM"; 
$date=date('m/d/Y H:i:s A',strtotime($edate)); 
echo $date.'<br/>'; 

Здесь мне нужно, чтобы отобразить месяц первый, как этот формат: mm/dd/yyyy но с моим кодом его дает мне следующий результат:

03/12/2016 12: 1:43 вечера

тогда я должен получить результат, как этот:

12/03/2016

ответ

2

Заменить / с - на дату ввода:

$edate="2/12/2016 12:01:43 PM"; 
$_edate = str_replace('/', '-', $edate); 
$date=date('m/d/Y H:i:s A',strtotime($_edate)); 
echo $date.'<br/>'; 
+0

хитрый решение. хороший! – x01saa

1

Согласно date function, попробуйте следующее:

date("m/d/Y", strtotime(str_replace('/', '-', $edate))); 
+0

Я уже упоминали месяц должен прийти первым. Пожалуйста, проверьте мой пост. – subhra

+0

отредактируйте ваш вопрос – x01saa

0

Jus t используйте DateTime, а затем вы можете форматировать дату в любом формате.

Сначала вы должны преобразовать ваш формат даты с помощью createFromFormat(), а затем использовать format() для форматирования в любой формат даты

Просто попробуйте

<?php 
    $edate="03/12/2016 12:01:43 PM"; 
    try { 

    echo DateTime::createFromFormat('d/m/Y h:i:s A', $edate)->format('m/d/Y'); 
    } catch (Exception $e) { 
     echo "error"; 
     exit(1); 
    } 
?>