Learning lesson here: Never trust the PHP documentation. Test everything!$position does not work as described, at least in PHP 7. After parsing without errors, it does not contain -1.You can still use it to set the parsing start character position, but not necessarily whether any errors occurred.To test for errors, replace my $nPosition test code in the other note with:<?php // Check if errors$bError = intl_is_failure(datefmt_get_error_code(oIDF));// If no errorif(!$bError){ // Use 'tm_hour' and 'tm_min' from the $aTime array for checking against other time values ...}else{ // Invalid string ...}?>