Возвращает предупреждения и ошибки

# DateTimeImmutable::getLastErrors

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::getLastErrors — Возвращает предупреждения и ошибки

### Описание

public static function DateTimeImmutable::getLastErrors(): array|false

Метод возвращает массив предупреждений и ошибок, которые обнаружил при разборе строки с датой и временем.

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

Сигнатура функции не содержит параметров.

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

Метод возвращает массив, который содержит информацию о предупреждениях и ошибках, или `false`, если нет ни предупреждений, ни ошибок.

### Список изменений

Версия | Описание
--- | ---
8.2.0 | До версии PHP 8.2.0 метод не возвращал `false`, когда не было предупреждений или ошибок. Вместо этого метод каждый раз возвращал задокументированную структуру массива.

### Примеры

Пример #1 Пример получения ошибки разбора строки с датой и временем методом DateTimeImmutable::getLastErrors()

    <?php

    try {
        $date = new DateTimeImmutable('asdfasdf');
    } catch (Exception $e) {
        // Обработка исключения таким способом приводится только в демонстрационных целях…
        print_r(DateTimeImmutable::getLastErrors());

        // …в объектно-ориентированном стиле лучше выводить сообщение вот так:
        echo $e->getMessage();
    }

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

    Array
    (
        [warning_count] => 1
        [warnings] => Array
            (
                [6] => Double timezone specification
            )

        [error_count] => 1
        [errors] => Array
            (
                [0] => The timezone could not be found in the database
            )

    )
    Failed to parse time string (asdfasdf) at position 0 (a): The timezone could not be found in the database

Индексы 6 и 0 в выводе примера относятся к индексу символа в строке разбора, на котором возникла ошибка.

Пример #2 Пример обнаружения переполнения дат

    <?php

    $date = DateTimeImmutable::createFromFormat('!Y-m-d', '2020-02-30');
    print_r(DateTimeImmutable::getLastErrors());

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

    Array
    (
        [warning_count] => 1
        [warnings] => Array
            (
                [10] => The parsed date was invalid
            )

        [error_count] => 0
        [errors] => Array
            (
            )
    )

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open