2016-07-28 3 views
-2

Я пытаюсь получить дату в формате d/m/Y H:i. Вот мой кодКак преобразовать String в Date в php?

$dateStr = "28/07/2016 10:00"; 
echo date('d/m/Y H:i', strtotime($dateStr)); 

Вот Ouput:

01/01/1970 01:00 

Я пытаюсь конвертировать в другие форматы, но результат все тот же день. Я знаю это очевидное, но все еще не могу понять, почему я получаю эту дату в качестве результата.

+0

почему вы не хотите использовать стандартный [ ' DateTime.createfromformat'] (http://php.net/manual/ru/datetime.createfromformat.php) или ['strftime'] (http://php.net/manual/ru/function.strftime.php)? – Arnial

+2

Не ваша строка уже в этом формате? Также вам не нужно преобразовывать yoru string дважды в метку времени. – Rizier123

+1

вы сделали это сейчас, что вы хотите @abff –

ответ

1

Вы можете использовать класс DateTime, и это метод createFromFormat для синтаксического анализа строки на сегодняшний день в требуемом формате.

Подобно этому,

$date = DateTime::createFromFormat('d/m/Y H:i', "28/07/2016 10:00"); 
$date = $date->format('Y-m-d H:i:s'); 
echo $date; 
+0

Да, исправил. Спасибо :) –

0

Используйте следующий код

$dateStr = "28/07/2016 10:00"; 
$dateStr =str_replace("/","-",$dateStr); 
echo date('d/m/Y H:i', strtotime($dateStr)); 
+0

Это точно такой же код, который они разместили в своем вопросе –

+0

просто добавьте одну строку $ dateStr = str_replace ("/", "-", $ dateStr); – sunilwananje

0

Этот код обеспечивает то, что вы хотите сделать:

$dateString = '28/07/2016 10:00'; 
$date = \DateTime::createFromFormat('d/m/Y H:i', $dateString); 
echo($date->format('d/m/Y H:i')); 
Смежные вопросы