(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)
IntlDateFormatter::isLenient -- datefmt_is_lenient — Obtener la tolerancia usada por un formateador de IntlDateFormatter
Estilo orientado a objetos
Estilo por procedimientos
Comprueba si el analizador es estricto o tolerante al interpretar las entradas que no coinciden exactamente con el patrón.
fmtEl recurso del formatedor.
TRUE si el analizador es tolerante, FALSE si es estricto. Por omisión, el analizador es tolerante.
Ejemplo #1 Ejmplo de datefmt_is_lenient()
<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'dd/mm/yyyy'
);
echo 'La tolerancia del formateador es : ';
if ($fmt->isLenient() ){
echo('TRUE');
} else{
echo('FALSE');
}
datefmt_parse($fmt, '35/13/1971');
echo "\n Intentar realizar parse('35/13/1971').\nEl resultado es : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() !=0 ){
echo "\nEl mensaje del error es : ".intl_get_error_message();
echo "\nEl código del error es : ".intl_get_error_code();
}
datefmt_set_lenient($fmt,false);
echo 'Ahora la toleranca del formateador es : ';
if ($fmt->isLenient() ){
echo('TRUE');
} else{
echo('FALSE');
}
datefmt_parse($fmt, '35/13/1971');
echo "\n Intentar realizar parse('35/13/1971').\nEl resultado es : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() !=0 ){
echo "\nEl mensaje del error es : ".intl_get_error_message();
echo "\nEl código del error es : ".intl_get_error_code();
}
?>
Ejemplo #2 Ejemplo orientado a objetos
<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
"dd/mm/yyyy"
);
echo "La tolerancia del formateador es : ";
if($fmt->isLenient() ){
echo('TRUE');
} else{
echo('FALSE');
}
$fmt->parse('35/13/1971');
echo "\n Intentar realizar parse('35/13/1971'). El resultado es : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() !=0 ){
echo "El mensaje del error es : ".intl_get_error_message();
echo "El código del error es : ".intl_get_error_code();
}
$fmt->setLenient(FALSE);
echo 'Ahora la toleranca del formateador es : ';
if($fmt->isLenient() ){
echo('TRUE');
} else{
echo('FALSE');
}
$fmt->parse('35/13/1971');
echo "\n Intentar realizar parse('35/13/1971'). El resultado es : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() !=0 ){
echo "El mensaje del error es : ".intl_get_error_message();
echo "El código del error es : ".intl_get_error_code();
}
?>
El resultado del ejemplo sería:
La tolerancia del formateador es : TRUE
Intentar realizar parse('35/13/1971').
El resultado es : -2147483
Ahora la toleranca del formateador es : FALSE
Intentar realizar parse('35/13/1971').
El resultado es :
El mensaje del error es : Date parsing failed: U_PARSE_ERROR
El código del error es : 9