PHP DateTime对象不会为我输入无效的日期错误?

领域

为什么php DateTime对象不为我输入无效的日期错误?例如,

$date_test = '13-10-31';

$datetime = new DateTime();
$date = $datetime->createFromFormat('Y-m-d', $date_test);
$date_errors = $datetime->getLastErrors();
print_r($date_errors);

结果,

Array
(
    [warning_count] => 0
    [warnings] => Array
        (
        )

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

)

我已将日期格式设置为“ Ymd”,即yyyy-mm-dd,因此“ 13-10-31”应该是错误输入,不是吗?

编辑

如果我将此行更改$datetime->createFromFormat('Y-m-d', $date_test);

$datetime->createFromFormat('YY-m-d', $date_test);

无论输入什么内容,都会出现错误。例如,

$date_test = '2013-10-31';

结果,

Array
(
    [warning_count] => 0
    [warnings] => Array
        (
        )

    [error_count] => 2
    [errors] => Array
        (
            [4] => Unexpected data found.
            [10] => Data missing
        )

)

为什么!??

血管白

您的日期是有效日期,但是您的代码不正确,因为它DateTime::createFromFormat()是的静态函数getLastErrors()您的示例代码应为:-

$date_test = '13-10-31';
$date = \DateTime::createFromFormat('Y-m-d', $date_test);
$date_errors = \DateTime::getLastErrors();
print_r($date_errors);

但是,由于10月31日(13-10-31)是有效日期,因此仍然不会有任何错误。当您提供'13'年份时,DateTime会将其强制转换为整数13,因此,它是有效的年份。

如果要舍弃无效的两位数年份,则必须编写自己的验证函数。

我建议您仔细阅读PHP日期和时间扩展文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP DateTime createFormat从无效日期开始

来自分类Dev

在PHP DateTime中处理格式正确但无效的日期

来自分类Dev

我只想从php中的datetime变量获取日期

来自分类Dev

当我访问对象/数组的未定义属性时,php不会引发错误,而只是发出通知

来自分类Dev

PHP代码不会回显我对象的属性

来自分类Dev

PHP foreach 对象错误

来自分类Dev

PHP错误-无效的SQL结果

来自分类Dev

输入错误的php错误消息

来自分类Dev

我的PHP出现错误

来自分类Dev

修改PHP DateTime对象的微秒

来自分类Dev

修改PHP DateTime对象的微秒

来自分类Dev

PHP DateTime对象的异常(?)行为

来自分类常见问题

PHP-为什么用我克隆的对象datetime属性更新对象datetime属性?

来自分类Dev

格式化php datetime对象以显示将来的日期,同时保留日期

来自分类Dev

PHP将Datetime对象与当前日期时间进行比较,并找到较小的对象

来自分类Dev

PHP DateTime时间间隔错误

来自分类Dev

使用json_encode()从PHP返回的Json对象,但是我的JavaScript中无效的json对象

来自分类Dev

PHP格式日期显示错误

来自分类Dev

错误日期期限PHP

来自分类Dev

PHP以错误的格式捕获日期

来自分类Dev

PHP日期让我感到沮丧

来自分类Dev

使用php验证无效的日期字符

来自分类Dev

使用php在输入类型“datetime”中预设当前日期和时间

来自分类Dev

使用PHP / CURL的Bigcommerce PUT(广告资源级)-错误415输入的内容类型无效

来自分类Dev

使用PHP / CURL的Bigcommerce PUT(广告资源级)-错误415输入的内容类型无效

来自分类Dev

JSON对象到PHP数组-无效的数组

来自分类Dev

如何使用php在数据库的DateTime列类型中插入日期时间对象

来自分类Dev

php和mysqli代码不会在我的数据库中输入数据

来自分类Dev

来自MySQL Fatched Datetime的PHP日期格式

Related 相关文章

  1. 1

    PHP DateTime createFormat从无效日期开始

  2. 2

    在PHP DateTime中处理格式正确但无效的日期

  3. 3

    我只想从php中的datetime变量获取日期

  4. 4

    当我访问对象/数组的未定义属性时,php不会引发错误,而只是发出通知

  5. 5

    PHP代码不会回显我对象的属性

  6. 6

    PHP foreach 对象错误

  7. 7

    PHP错误-无效的SQL结果

  8. 8

    输入错误的php错误消息

  9. 9

    我的PHP出现错误

  10. 10

    修改PHP DateTime对象的微秒

  11. 11

    修改PHP DateTime对象的微秒

  12. 12

    PHP DateTime对象的异常(?)行为

  13. 13

    PHP-为什么用我克隆的对象datetime属性更新对象datetime属性?

  14. 14

    格式化php datetime对象以显示将来的日期,同时保留日期

  15. 15

    PHP将Datetime对象与当前日期时间进行比较,并找到较小的对象

  16. 16

    PHP DateTime时间间隔错误

  17. 17

    使用json_encode()从PHP返回的Json对象,但是我的JavaScript中无效的json对象

  18. 18

    PHP格式日期显示错误

  19. 19

    错误日期期限PHP

  20. 20

    PHP以错误的格式捕获日期

  21. 21

    PHP日期让我感到沮丧

  22. 22

    使用php验证无效的日期字符

  23. 23

    使用php在输入类型“datetime”中预设当前日期和时间

  24. 24

    使用PHP / CURL的Bigcommerce PUT(广告资源级)-错误415输入的内容类型无效

  25. 25

    使用PHP / CURL的Bigcommerce PUT(广告资源级)-错误415输入的内容类型无效

  26. 26

    JSON对象到PHP数组-无效的数组

  27. 27

    如何使用php在数据库的DateTime列类型中插入日期时间对象

  28. 28

    php和mysqli代码不会在我的数据库中输入数据

  29. 29

    来自MySQL Fatched Datetime的PHP日期格式

热门标签

归档