CakeFest 2024: The Official CakePHP Conference

IntlDateFormatter::setLenient

datefmt_set_lenient

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

IntlDateFormatter::setLenient -- datefmt_set_lenientConfigure la souplesse de l'analyseur

Description

Style orienté objet

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

Style procédural

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

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.

Liste de paramètres

formatter

La ressource de formateur IntlDateFormatter.

lenient

Si l'analyseur est souple ou non, par défaut, vaut true (souple).

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec datefmt_set_lenient()

<?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
"\nTentative d'analyse de la date '35/13/1971'.\nLe résultat est : " . datefmt_parse($fmt, '35/13/1971');
if (
intl_get_error_code() != 0) {
echo
"\nError_msg est : " . intl_get_error_message();
echo
"\nError_code est : " . intl_get_error_code();
}
datefmt_set_lenient($fmt, false);
echo
"\nMaintenant, le formateur est strict : ";
if (
$fmt->isLenient()) {
echo
'Oui';
} else {
echo
'Non';
}
datefmt_parse($fmt, '35/13/1971');
echo
"\nTentative d'analyse de la date '35/13/1971'.\nLe résultat est : " . datefmt_parse($fmt, '35/13/1971');
if (
intl_get_error_code() != 0) {
echo
"\nError_msg est : ".intl_get_error_message();
echo
"\nError_code est : ".intl_get_error_code();
}

?>

Exemple #2 Exemple orienté objet

<?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
'Non';
}
$fmt->parse('35/13/1971');
echo
"\n Tentative d'analyse de la date '35/13/1971'.\nLe résultat est : " . $fmt->parse('35/13/1971');
if (
intl_get_error_code() != 0) {
echo
"\nError_msg est : " . intl_get_error_message();
echo
"\nError_code est : " . intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo
"\nMaintenant, 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'.\nLe résultat est : " . $fmt->parse('35/13/1971');
if (
intl_get_error_code() != 0) {
echo
"\nError_msg est : " . intl_get_error_message();
echo
"\nError_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 : 66038400
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

Voir aussi

add a note

User Contributed Notes

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