PHP 8.1.28 Released!

IntlDateFormatter::setLenient

datefmt_set_lenient

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

IntlDateFormatter::setLenient -- datefmt_set_lenientУстанавливает мягкий режим анализатора

Описание

Объектно-ориентированный стиль

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

Процедурный стиль

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

Определяет, является ли режим анализатора строгим или мягким при интерпретации входных данных, которые в точности не соответствуют шаблону. Включение мягкого синтаксического анализа позволяет синтаксическому анализатору принимать ошибочные шаблоны даты или времени, анализируя как можно больше для получения значения. Лишний пробел, нераспознанные токены или недопустимые значения ("February 30th") не принимаются.

Список параметров

formatter

Ресурс средства форматирования.

lenient

Устанавливает, является ли анализатор vzurbv или нет, по умолчанию true (мягкий).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false, если возникла ошибка.

Примеры

Пример #1 Пример использования datefmt_set_lenient()

<?php
$fmt
= datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'dd/MM/yyyy'
);
echo
'Мягкий режим средства форматирования : ';
if (
$fmt->isLenient()) {
echo
'ДА';
} else {
echo
'НЕТ';
}
datefmt_parse($fmt, '35/13/1971');
echo
"\nПопытка разобрать '35/13/1971'.\nРезультат : " . datefmt_parse($fmt, '35/13/1971');
if (
intl_get_error_code() != 0) {
echo
"\nСообщение об ошибке : " . intl_get_error_message();
echo
"\nКод ошибки : " . intl_get_error_code();
}
datefmt_set_lenient($fmt, false);
echo
"\nТеперь мягкий режим средства форматирования : ";
if (
$fmt->isLenient()) {
echo
'ДА';
} else {
echo
'НЕТ';
}
datefmt_parse($fmt, '35/13/1971');
echo
"\nПопытка разобрать '35/13/1971'.\nРезультат : " . datefmt_parse($fmt, '35/13/1971');
if (
intl_get_error_code() != 0) {
echo
"\nСообщение об ошибке : ".intl_get_error_message();
echo
"\nКод ошибки : ".intl_get_error_code();
}

?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt
= new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'dd/MM/yyyy'
);
echo
'Мягкий режим средства форматирования : ';
if (
$fmt->isLenient()) {
echo
'ДА';
} else {
echo
'НЕТ';
}
$fmt->parse('35/13/1971');
echo
"\nПопытка разобрать '35/13/1971'.\nРезультат : " . $fmt->parse('35/13/1971');
if (
intl_get_error_code() != 0) {
echo
"\nСообщение об ошибке : " . intl_get_error_message();
echo
"\nКод ошибки : " . intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo
"\nТеперь мягкий режим средства форматирования : ";
if (
$fmt->isLenient()) {
echo
'ДА';
} else {
echo
'НЕТ';
}
$fmt->parse('35/13/1971');
echo
"\nПопытка разобрать '35/13/1971'.\nРезультат : " . $fmt->parse('35/13/1971');
if (
intl_get_error_code() != 0) {
echo
"\nСообщение об ошибке : " . intl_get_error_message();
echo
"\nКод ошибки : " . intl_get_error_code();
}

?>

Результат выполнения приведённого примера:

Мягкий режим средства форматирования : ДА
Попытка разобрать '35/13/1971'.
Результат : 66038400
Теперь мягкий режим средства форматирования : НЕТ
Попытка разобрать '35/13/1971'.
Результат :
Сообщение об ошибке : Date parsing failed: U_PARSE_ERROR
Код ошибки : 9

Смотрите также

  • datefmt_is_lenient() - Получает снисходительность, используемую для IntlDateFormatter
  • datefmt_create() - Создаёт средство форматирования даты

add a note

User Contributed Notes

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