Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does DateTime::createFromFormat() fails and returns a boolean in my second example?

Tags:

When I run this the first one is correctly created into a date. The second one fails, returning a boolean and so I cannot format. Is the time out of range?

//works correctly $startDate = "2015-05-06 10:49:20.637133"; $start = DateTime::createFromFormat('Y-m-d h:m:s.u',$startDate); echo $start->format('m/d/y');  //doesn't work correctly $startDate = "2015-05-12 15:49:06.821289"; $start = DateTime::createFromFormat('Y-m-d h:m:s.u',$startDate); echo $start->format('m/d/y'); 

Code to reproduce the error

like image 620
depperm Avatar asked May 12 '15 20:05

depperm


1 Answers

Check DateTime::getLastErrors():

php > var_dump(DateTime::createFromFormat('Y-m-d h:m:s',"2015-05-12 15:49:06")); bool(false)  php > var_dump(DateTime::getLastErrors()); array(4) {   ["warning_count"]=>   int(1)   ["warnings"]=>   array(1) {     [19]=>     string(27) "The parsed date was invalid"   }   ["error_count"]=>   int(1)   ["errors"]=>   array(1) {     [11]=>     string(30) "Hour can not be higher than 12" 
like image 86
Marc B Avatar answered Oct 04 '22 23:10

Marc B