# IntlDateFormatter::setLenient

# datefmt_set_lenient

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

IntlDateFormatter::setLenient -- datefmt_set_lenient — Establecer la tolerancia del analizador

### Descripción

Estilo orientado a objetos

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

Estilo por procedimientos

datefmt_set_lenient(IntlDateFormatter `$fmt`, bool `$lenient`): bool

Define si el analizador es estricto o tolerante al interpretar salidas que no coinciden exactamente con el patrón. Habilitar el análisis tolerante permite al analizador aceptar patrones de fecha u hora defectuosos, procesando lo más posible para obtener un valor. No se aceptan los espacios extra, tokens no reconocidos, o valores no válidos ("30 de febrero").

### Parámetros

`fmt`

  El recurso del formatedor.

`lenient`

  Establecer si el analizador es tolerante o no, por defecto es `false` (tolerante).

### Valores devueltos

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

### Ejemplos

Ejemplo #1 Ejemplo de datefmt_set_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 "\nAhora 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').\nEl resultado es : " . $fmt->parse('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();
}
$fmt->setLenient(FALSE);
echo '\nAhora 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').\nEl resultado es : " . $fmt->parse('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();
}
?>`

El resultado del ejemplo sería:

    La tolerancia del formateador es : TRUE
    Intentar realizar parse('35/13/1971').
    El resultado es : 66038400
    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

### Ver también

- datefmt_is_lenient() - Obtener la tolerancia usada por un formateador de IntlDateFormatter
- datefmt_create() - Crear un formateador de fechas