2014-02-15 3 views
-2

У меня есть эта строкаStrToTime() дает нулевое значение

$chktodate = "15/02/2014 9 am"; 

И когда я делаю это

$timetocheck = strtotime($chkdt); 

Это не дает мне ничего.

Разве это не значит, что функция должна воспринимать строку как формат, который я упомянул, т.е. 15/02/2014 9 утра.

+1

@ Glavić: Я не вижу, как это дубликат этого вопроса. В этом вопросе OP имеет строку, которая не распознается 'strtotime()' как допустимый формат даты и, следовательно, возвращает 'FALSE'. ОП спрашивает, как решить эту проблему, в то время как в другом вопросе обсуждается работа с будущими датами. –

+0

Возможный дубликат [PHP: strtotime возвращает «ничего» типа «boolean»] (http://stackoverflow.com/questions/19164923/php-strtotime-returns-nothing-of-type-boolean) –

ответ

1

strtotime() не понимает этот формат и, следовательно, возвращает FALSE. Список форматов, распознаваемых анализатором, указан here.

Используйте DateTime::createFromFormat() разобрать этот формат:

$dateObj = DateTime::createFromFormat('d/m/Y g a', $chktodate); 
echo $dateObj->format('Y-m-d H:i:s'); // 2014-02-15 09:00:00 

Для получения списка всех доступных опций форматирования см documentation.

+0

Я становлюсь смертельным Ошибка: вызов в формат функции участника() –

+1

@PrithvirajMitra: Можете ли вы опубликовать вывод 'var_dump ($ chktodate);'? –

+0

'strtotime()' не возвращает 'NULL' при ошибке, а' false'. –

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