2013-07-30 3 views
-2

Я попытался превращающегоДата Результаты преобразования формата неправильно даты

12-18-1997 

в

18-12-1997 

с этим кодом

$new_date = date('d-m-Y', strtotime('12-18-1997')); 

, но это приводит к 18-12-1969

Если я должен Conver t полная дата со временем, тогда его конвертация штрафа, но в дату, о которой я писал, нет времени.

+0

Пожалуйста, не пометить его дубликат. Если мне нужно преобразовать полную дату вместе со временем, тогда ее конвертация прекрасна, но в дату, о которой я писал, нет времени. –

ответ

0

Использование DateTime вместо strtotime():

$date = DateTime::createFromFormat('m-d-Y', '12-18-1997'); 
echo $date->format('d-m-Y'); 

Вы можете видеть из this demo, что она печатает:

18-12-1997 
+0

Я получаю эту ошибку. Неустранимая ошибка: вызов неопределенного метода DateTime :: createFromFormat() –

+0

@ImranTariq - тогда PHP старше версии 5.3, и пришло время для обновления. – nickb

+0

Я проверил Версии программ из cpanel. Там PHP-версия: 5.3.24 –

0

StrToTime это хорошо, но это не психическое или всезнающим. Вы кормите его в строку времени это не в состоянии разобрать правильно:

php > var_dump(strtotime('12-18-1997')); 
bool(false) 

Поскольку вы просто предполагали, что это успех, вы кормите, что false обратно date(), где он типа отливка в целое число 0. Тем не менее, ваш результат невозможен, поскольку int 0 в качестве даты - январь 1/1970. С перераспределением часового пояса это будет 31-12-1969 для вас, NOT18-12.

Если вы не можете кормить StrToTime формат он понимает, а затем использовать date_create_from_format и сказать ему, что то, что формат:

$date = date_create_from_format('m-d-Y', '12-18-1997'); 
$text = date('d-m-Y', $date); 
+0

Ошибка. Вызов неопределенной функции date_create_from_format() –

+0

Тогда ваша версия PHP слишком стар. Определенно время для обновления. –

+0

Я проверил программные версии cpanel. Там PHP-версия: 5.3.24 –

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