array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'intldateformatter.setlenient.php', 1 => 'IntlDateFormatter::setLenient', ), 'up' => array ( 0 => 'class.intldateformatter.php', 1 => 'IntlDateFormatter', ), 'prev' => array ( 0 => 'intldateformatter.setcalendar.php', 1 => 'IntlDateFormatter::setCalendar', ), 'next' => array ( 0 => 'intldateformatter.setpattern.php', 1 => 'IntlDateFormatter::setPattern', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'reference/intl/dateformatter/set-lenient.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
IntlDateFormatter::setLenient -- datefmt_set_lenient — Define a leniência do interpretador
Estilo orientado a objetos
Estilo procedural
Define se o interpretador é estrito ou leniente ao interpretar entradas que não correspondem exatamente ao modelo. Habilitar interpretação leniente permite ao interpretador aceitar modelos de data e horário que poderiam falhar, analisando o máximo possível para obter um valor. Espaços extras, marcadores não reconhecidos ou valores inválidos ("30 de fevereiro") não são aceitos.
formatter
O recurso do formatador
lenient
Define de o interpretador é leniente ou não, o padrão é true
(leniente).
Exemplo #1 Exemplo de datefmt_set_lenient()
<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'dd/MM/yyyy'
);
echo 'Leniência do formatador é : ';
if ($fmt->isLenient()) {
echo 'TRUE';
} else {
echo 'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo "\nTentando interpretar '35/13/1971'.\nO resultado é: " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
echo "\nMensagem de erro: " . intl_get_error_message();
echo "\nCódigo de erro: " . intl_get_error_code();
}
datefmt_set_lenient($fmt,false);
echo "\nAgora a leniência do formatador é: ";
if ($fmt->isLenient()) {
echo 'TRUE';
} else {
echo 'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo "\nTentando interpretar '35/13/1971'.\nO resultado é: " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
echo "\nMensagem de erro: " . intl_get_error_message();
echo "\nCódigo de erro: " . intl_get_error_code();
}
?>
Exemplo #2 Exemplo OO
<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
"dd/MM/yyyy"
);
echo "Leniência do formatador é : ";
if ($fmt->isLenient()) {
echo 'TRUE';
} else {
echo 'FALSE';
}
$fmt->parse('35/13/1971');
echo "\nTentando interpretar '35/13/1971'.\nO resultado é: " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0){
echo "\nMensagem de erro: " . intl_get_error_message();
echo "\nCódigo de erro: " . intl_get_error_code();
}
$fmt->setLenient(FALSE);
echo "\nAgora a leniência do formatador é: ";
if ($fmt->isLenient()) {
echo 'TRUE';
} else {
echo 'FALSE';
}
$fmt->parse('35/13/1971');
echo "\nTentando interpretar '35/13/1971'.\nO resultado é: " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0) {
echo "\nMensagem de erro: " . intl_get_error_message();
echo "\nCódigo de erro: " . intl_get_error_code();
}
?>
O exemplo acima produzirá:
Leniência do formatador é : TRUE Tentando interpretar '35/13/1971'. O resultado é: 66038400 Agora a leniência do formatador é: FALSE Tentando interpretar '35/13/1971'. O resultado é: Mensagem de erro: Date parsing failed: U_PARSE_ERROR Código de erro: 9