(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
IntlDateFormatter::setLenient -- datefmt_set_lenient — Configure la souplesse de l'analyseur
Style orienté objet
Style procédural
Définit si l'analyseur est strict ou souple lors de l'interprétation des chaînes qui ne correspondent pas exactement au modèle recherché. Activer la souplesse da l'analyseur permet d'accepter des valeurs qui pourraient être considérées comme erronées par l'analyseur strict. Les espaces, les caractères inconnus ou les dates invalides ne sont pas acceptées.
La ressource de formateur IntlDateFormatter.
TRUE si l'analyseur est souple, FALSE si l'analyseur est strict. Par défaut, l'analyseur est strict.
Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.
Exemple #1 Exemple avec datefmt_set_lenient(), procédural
<?php
$fmt = datefmt_create("en_US", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/Los_Angeles', IntlDateFormatter::GREGORIAN, "dd/mm/yyyy");
echo "Le formateur est strict : ";
if( $fmt->isLenient() ){
echo('Oui');
} else {
echo('Non');
}
datefmt_parse($fmt,"35/13/1971");
echo "\n Tentative d'analyse de la date '35/13/1971'. Le résultat est : " .datefmt_parse($fmt,"35/13/1971");
if( intl_get_error_code() !=0 ){
echo "Error_msg est : ".intl_get_error_message();
echo "Error_code est : ".intl_get_error_code();
}
datefmt_set_lenient($fmt,false);
echo "Maintenant, le formateur est strict : ";
if( $fmt->isLenient() ){
echo('Oui');
}else{
echo('Non');
}
datefmt_parse($fmt,"35/13/1971");
echo "\n Tentative d'analyse de la date '35/13/1971'. Le résultat est : " .datefmt_parse($fmt,"35/13/1971");
if( intl_get_error_code() !=0 ){
echo "Error_msg est : ".intl_get_error_message();
echo "Error_code est : ".intl_get_error_code();
}
?>
Exemple #2 Exemple avec datefmt_set_lenient(), procédural
<?php
$fmt = new IntlDateFormatter("en_US", IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'America/Los_Angeles', IntlDateFormatter::GREGORIAN, "dd/mm/yyyy");
echo "Le formateur est strict : ";
if( $fmt->isLenient() ){
echo('Oui');
} else {
echo('Nom');
}
$fmt->parse("35/13/1971");
echo "\n Tentative d'analyse de la date '35/13/1971'. Le résultat est : " .datefmt_parse($fmt,"35/13/1971");
if( intl_get_error_code() !=0 ){
echo "Error_msg est : ".intl_get_error_message();
echo "Error_code est : ".intl_get_error_code();
}
$fmt->setLenient(FALSE);
echo "Maintenant, le formateur est strict : ";
if( $fmt->isLenient() ){
echo('Oui');
} else {
echo('Non');
}
$fmt->parse("35/13/1971");
echo "\n Tentative d'analyse de la date '35/13/1971'. Le résultat est : " .$fmt->parse("35/13/1971");
if( intl_get_error_code() !=0 ){
echo "Error_msg est : ".intl_get_error_message();
echo "Error_code est : ".intl_get_error_code();
}
?>
L'exemple ci-dessus va afficher :
Le formateur est strict : Non Tentative d'analyse de la date '35/13/1971'. Le résultat est : -2147483 Maintenant, le formateur est strict : Oui Tentative d'analyse de la date '35/13/1971'. Le résultat est : Error_msg est : Date parsing failed: U_PARSE_ERROR Error_code est : 9