(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.
fmt
El 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