DateTimeImmutable::getLastErrors
(PHP 5 >= 5.5.0, PHP 7, PHP 8)
DateTimeImmutable::getLastErrors — Returns the warnings and errors
说明
Returns an array of warnings and errors found while parsing a date/time string.
参数
此函数没有参数。
返回值
Returns array containing info about warnings and errors, or false
if there
are neither warnings nor errors.
更新日志
版本 | 说明 |
---|---|
8.2.0 |
Before PHP 8.2.0, this function did not return false
when there were no warnings or errors. Instead, it would always
return the documented array structure.
|
示例
示例 #1 DateTimeImmutable::getLastErrors() example
<?php
try {
$date = new DateTimeImmutable('asdfasdf');
} catch (Exception $e) {
// For demonstration purposes only...
print_r(DateTimeImmutable::getLastErrors());
// The real object-oriented way to do this is
// 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 ) )
The indexes 6, and 0 in the example output refer to the character index in the string where the error occurred.
+添加备注
用户贡献的备注 1 note
_mittens ¶
1 year ago
If you are curious as to when the internal array gets resetted (from https://onlinephp.io/c/3ee35):
<?php
$date0 = DateTimeImmutable::createFromFormat('!Y-m-d', '2020-31-31');
var_dump($date0->format('c')); // 2022-07-31T00:00:00+00:00
foreach(range(0,2) as $_)
// The internal error won't reset
var_dump( join(DateTimeImmutable::getLastErrors()['warnings']) ); // The parsed date was invalid
$date1 = DateTimeImmutable::createFromFormat('!Y-m-d', '2020-12-31');
var_dump($date1->format('c')); // 2020-12-31T00:00:00+00:00
// The internal error did reset
var_dump( empty(DateTimeImmutable::getLastErrors()['warnings']) ); // true
$date2 = DateTimeImmutable::createFromFormat('!Y-m-d', '2020-31-31');
var_dump( join(DateTimeImmutable::getLastErrors()['warnings']) ); // The parsed date was invalid
$date3 = new DateTimeImmutable('2023-12-31T00:00:00.000000Z');
// The internal error did reset
var_dump( empty(DateTimeImmutable::getLastErrors()['warnings']) ); // true
?>
Output:
string(25) "2022-07-31T00:00:00+00:00"
string(27) "The parsed date was invalid"
string(27) "The parsed date was invalid"
string(27) "The parsed date was invalid"
string(25) "2020-12-31T00:00:00+00:00"
bool(true)
string(27) "The parsed date was invalid"
bool(true)
备份地址:http://www.lvesu.com/blog/php/datetimeimmutable.getlasterrors.php