2016-09-23 3 views
-4

Мой код:PHP строка даты возвращения неверная дата

echo "Strtotime : "; 

    echo date("Y-m-d",strtotime('9 March, 2015')); 

    echo "<br> mktime : "; 

    echo date("Y-m-d",mktime('9 March, 2015')); 

    echo "<br> Normal : "; 

    echo date("Y-m-d",'9 March, 2015'); 

мне нужен выход 2015-03-09

+0

Где строка '9 марта, 2015' происходят из - есть ли у вас какой-либо контроль над этим, что другие форматы могли бы вы получать? – Steve

+0

Попробуйте взглянуть на руководство по ['mktime()'] (http://php.net/manual/en/function.mktime.php). Ничего похожего на попытку его использования. – RiggsFolly

+0

Также смотрите руководство для [ 'strtotime()'] (http://php.net/manual/en/function.strtotime.php) Если вы правильно используете функции, они будут корректно работать – RiggsFolly

ответ

0

Я настоятельно рекомендую использовать класс DateTime для этого:

$date = DateTime::createFromFormat ("d M, Y", "9 march, 2015"); 
echo $date->format ("Y-m-d"); 

Если вы проверяете PHP manual for DateTime, вы можете получить целую кучу других действительно хороших советов о том, как для дальнейшего использования этого класса. Что делает работу с датами в PHP намного проще, чем со старыми функциями. ;)

1

Вы можете использовать DateTime с date_create_from_format, если структура строки всегда одинакова:

$d = '9 March, 2015'; 

echo date_create_from_format('d F, Y', $d)->format('Y-m-d'); 

См бегущего пример: https://3v4l.org/s8EHi

+0

Its Working Fine ..... Спасибо –

0

, если вы хотите, чтобы показать дату - Монт ч - год вы можете применить это

<?php 
echo date('Y-m-d'); 
?> 
0

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

$ orig_date = "22/09/2016";

$ date = str_replace ('/', '-', $ orig_date);

echo date ('Y-m-d', strtotime ($ date));

Подробнее date and time format example here

Смежные вопросы