IntlDateFormatter::setLenient

datefmt_set_lenient

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

IntlDateFormatter::setLenient -- datefmt_set_lenientEstablecer 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() !=){
    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() !=){
    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

add a note add a note

User Contributed Notes

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