PHP 8.5.0 Alpha 1 available for testing

IntlDateFormatter::setLenient

datefmt_set_lenient

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::setLenient -- datefmt_set_lenientConfigura la flexibilidad del analizador

Descripción

Estilo orientado a objetos

public IntlDateFormatter::setLenient(bool $lenient): void

Estilo por procedimientos

datefmt_set_lenient(IntlDateFormatter $formatter, bool $lenient): void

Define si el analizador es estricto o flexible al interpretar strings que no coinciden exactamente con el patrón buscado. Activar la flexibilidad del analizador permite aceptar valores que podrían ser considerados erróneos por el analizador estricto. Los espacios, los caracteres desconocidos o las fechas inválidas no son aceptados.

Parámetros

formatter

El recurso de formateador IntlDateFormatter.

lenient

Si el analizador es flexible o no, por defecto, vale true (flexible).

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Ejemplos

Ejemplo #1 Ejemplo con datefmt_set_lenient()

<?php
$fmt
= datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'dd/MM/yyyy'
);
echo
'El formateador es flexible : ';
if (
$fmt->isLenient()) {
echo
'Sí';
} else {
echo
'No';
}
datefmt_parse($fmt, '35/13/1971');
echo
"\nIntento de análisis de la fecha '35/13/1971'.\nEl resultado es : " . datefmt_parse($fmt, '35/13/1971');
if (
intl_get_error_code() != 0) {
echo
"\nError_msg es : " . intl_get_error_message();
echo
"\nError_code es : " . intl_get_error_code();
}
datefmt_set_lenient($fmt, false);
echo
"\nAhora, el formateador es estricto : ";
if (
$fmt->isLenient()) {
echo
'Sí';
} else {
echo
'No';
}
datefmt_parse($fmt, '35/13/1971');
echo
"\nIntento de análisis de la fecha '35/13/1971'.\nEl resultado es : " . datefmt_parse($fmt, '35/13/1971');
if (
intl_get_error_code() != 0) {
echo
"\nError_msg es : ".intl_get_error_message();
echo
"\nError_code 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
'El formateador es flexible : ';
if (
$fmt->isLenient()) {
echo
'Sí';
} else {
echo
'No';
}
$fmt->parse('35/13/1971');
echo
"\n Intento de análisis de la fecha '35/13/1971'.\nEl resultado es : " . $fmt->parse('35/13/1971');
if (
intl_get_error_code() != 0) {
echo
"\nError_msg es : " . intl_get_error_message();
echo
"\nError_code es : " . intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo
"\nAhora, el formateador es estricto : ";
if (
$fmt->isLenient()) {
echo
'Sí';
} else {
echo
'No';
}
$fmt->parse('35/13/1971');
echo
"\n Intento de análisis de la fecha '35/13/1971'.\nEl resultado es : " . $fmt->parse('35/13/1971');
if (
intl_get_error_code() != 0) {
echo
"\nError_msg es : " . intl_get_error_message();
echo
"\nError_code es : " . intl_get_error_code();
}

?>

El resultado del ejemplo sería:

El formateador es flexible : No
Intento de análisis de la fecha '35/13/1971'.
El resultado es : 66038400
Ahora, el formateador es estricto : Sí
Intento de análisis de la fecha '35/13/1971'.
El resultado es : Error_msg es : Date parsing failed: U_PARSE_ERROR Error_code es : 9

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top