【发布时间】:2017-08-02 10:19:15
【问题描述】:
我不明白为什么这是一个有效的日期
strtotime("1920-09k-12") // -1556877600 // I expect false
我发现在月份或日期之后添加一个字符是有效的日期。
strtotime("1920-09-12d") // -1555905600 // I expect false
strtotime("1920-09n-12") // -1556838000 // I expect false
相反
strtotime("1920-09k-12k") // false
strtotime("1920r-09-12") // false
strtotime("1920-09-12") // -1555862400
这是预期的行为吗?
我使用 Laravel,strtotime 函数用于验证框架中的日期,但是当在数据库中保存带有“误报”日期的记录时,会引发 QueryException。 我通过自定义验证解决了这个问题,但我很想知道为什么 strtotime 有这种行为。
【问题讨论】:
-
你试过 laravel 中包含的
Carbon类了吗? -
是的,我使用 Carbon,但无法更改框架验证规则。无论如何,问题在于 strtotime 而不是框架。我刚刚在项目中解决了我的问题,但我想知道为什么 strtotime 没有预期的行为。
标签: php validation date laravel-5.3 strtotime