Last 5.3 release ever available: PHP 5.3.29 - 5.3 now EOL

DateTime::getLastErrors

date_get_last_errors

(PHP 5 >= 5.3.0)

DateTime::getLastErrors -- date_get_last_errorsRetourne les dernières erreurs et alertes

Description

Style orienté objet

public static array DateTime::getLastErrors ( void )

Style procédural

array date_get_last_errors ( void )

Retourne un tableau contenant les dernières erreurs et alertes obtenues lors de l'analyse de la chaîne de date.

Liste de paramètres

Cette fonction ne contient aucun paramètre.

Valeurs de retour

Retourne un tableau contenant les erreurs et alertes.

Exemples

Exemple #1 Exemple avec DateTime::getLastErrors()

Style orienté objet

<?php
try {
    
$date = new DateTime('asdfasdf');
} catch (
Exception $e) {
    
// Juste pour l'exemple...
    
print_r(DateTime::getLastErrors());

    
// Manière orientée objets de gérer les erreurs (exceptions)
    // echo $e->getMessage();
}
?>

Style procédural

<?php
$date 
date_create('asdfasdf');
print_r(date_get_last_errors());
?>

Les exemples ci-dessus vont afficher :

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
        )

)

Les indexes 6 et 0 de l'affichage de cet exemple se réfèrent à l'index du caractères dans la chaîne où l'erreur est survienue.

add a note add a note

User Contributed Notes 1 note

up
3
framework at photon-project dot com
3 years ago
DateTime::createFromFormat is smart to handle the cases where you input an invalid date, like April 31st, and convert it to May 1st. In some cases, you do not want this automatic smart handling of the dates for example in a user input form where you want to be sure that your user did input the date he wanted. To do that, you need to get access to the warnings, this method is the only way to do it:

<?php
$date
= DateTime::createFromFormat('Y-m-d', '1999-04-31');
print
$date->format('Y-m-d') . PHP_EOL;
print_r(DateTime::getLastErrors());
?>

The output is:

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

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

)

So, here you can see, you have a warning because the date was invalid, but not an error because PHP was smart enough to convert it into a valid date. It is then up to you to do something with this information.
To Top