PHP останавливает выполнение, когда достигает строки кода - PullRequest
1 голос
/ 21 марта 2012

Я работаю над сценарием PHP для Wordpress и выполняю вызов API для нашей системы, который включает в себя строку DateTime в формате .Net to Json. Используя регулярные выражения, я сократил время до эпохи Unix. Как я понимаю, я должен иметь возможность затем создать объект DateTime из этого объекта, используя DateTime :: createFromFormat ('U', $ time); но сценарий прекращает свое выполнение, когда встречает его (он выполняет все до этого момента). Я завернул его в try / catch, но даже если он не выполняется, я думаю, он просто «умирает».

Что здесь происходит?

preg_match_all('/\d+/', $post->discussion->posttime, &$ms);
$ms = $ms[0];
var_dump($ms[0]);
$time = substr($ms[0], 0, strlen($ms[0]) - 3);
var_dump($time);
$date = DateTime::createFromFormat('U', $time);
//Nothing after the above line is executed
var_dump($date);
...

Вывод на страницу выглядит так:

string(13) "1332244919776" 
string(10) "1332244919"

Ничего, что я ставлю после отображения строки DateTime (или, насколько я могу судить, выполнено). Я использовал действующие метки времени Unix из сети, и они все еще не работают. Я также пробовал другие форматы ('Y-m-d') с соответствующими форматами строки даты, и ни один из них не работал. Создание обычного объекта NowTime DateTime с использованием new DateTime (); хотя работает.

1 Ответ

1 голос
/ 21 марта 2012

Звучит как фатальная ошибка при отключении отчетов об ошибках.

Наиболее вероятной причиной проблемы является то, что вы используете версию php <5.3.Поддержка <a href="http://php.net/manual/en/datetime.createfromformat.php" rel="nofollow">createFromFormat была добавлена ​​в версии 5.3, тогда как объект DateTime был добавлен в версии 5.2.

...