ConFoo 2025

IntlDateFormatter::isLenient

datefmt_is_lenient

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

IntlDateFormatter::isLenient -- datefmt_is_lenientПолучает снисходительность, используемую для IntlDateFormatter

Описание

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

public IntlDateFormatter::isLenient(): bool

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

datefmt_is_lenient(IntlDateFormatter $formatter): bool

Проверяет, является ли синтаксический анализатор строгим или снисходительным при интерпретации входных данных, которые не точно соответствуют шаблону.

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

formatter

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

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

Возвращает true, если парсер снисходителен или false, если парсер строгий. По умолчанию парсер снисходителен.

Примеры

Пример #1 Пример использования datefmt_is_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
'Теперь снисходительность средства форматирования: ';
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
'Теперь снисходительность средства форматирования: ';
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'.
Результат: -2147483
Теперь снисходительность средства форматирования: Нет
Попытка выполнить синтаксический анализ '35/13/1971'.
Результат:
Ошибка: Date parsing failed: U_PARSE_ERROR
Код ошибки: 9

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

  • datefmt_set_lenient() - Устанавливает мягкий режим анализатора
  • datefmt_create() - Создаёт средство форматирования даты

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top