首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >验证laravel 5中的时间戳值

验证laravel 5中的时间戳值
EN

Stack Overflow用户
提问于 2015-05-18 19:08:44
回答 5查看 15.6K关注 0票数 6

我正在编写验证器规则,用于在添加新的雄辩模型记录之前检查数据是否有效。

对于字符串、小数和整数,这一点非常清楚。

但是时间戳字段呢?

我在我的一个数据库迁移中使用timestamp方法添加了列,它工作得很好。在执行查询之前,我唯一需要做的就是确保传递的值是一个有效的时间戳。

有没有一种直接/简单的方法,或者我应该为此编写一个regexp?

谢谢

EN

回答 5

Stack Overflow用户

发布于 2015-07-08 17:49:00

我认为是这样验证的..

代码语言:javascript
运行
复制
$rules = ['start_at' => 'date_format:Y-m-d H:i:s'];

让我们测试一下这个规则

代码语言:javascript
运行
复制
public function testSimpleTimeStampValidation()
{

    $data = ['start_at'  => '2015-12-1 12:12:58'];


    $rules = ['start_at' => 'date_format:Y-m-d H:i:s'];

    $validator = \Validator::make($data, $rules);

    $this->assertTrue($validator->passes()); // passed !        
}

再次尝试使用不需要的日期格式进行测试..

代码语言:javascript
运行
复制
public function testSimpleTimeStampValidation()
{

    $data = ['start_at'  => '12-1-2015 12:12:58'];


    $rules = ['start_at' => 'date_format:Y-m-d H:i:s'];

    $validator = \Validator::make($data, $rules);

    $this->assertTrue($validator->passes()); // Failed !        
}

看起来这个规则运行得很好..

更多详细信息Data Format Validation in L5

票数 7
EN

Stack Overflow用户

发布于 2018-05-01 20:11:24

使用此规则

代码语言:javascript
运行
复制
   public function rules()
    {
        return [
            'date_time' => 'date_format:Y-m-d H:i:s'
        ];
    }
票数 4
EN

Stack Overflow用户

发布于 2015-05-18 19:26:36

在laravel中没有时间戳的验证规则。如果你需要验证时间戳,你可以使用类似这样的东西:

代码语言:javascript
运行
复制
function isValidTimeStamp($timestamp)
{
    return ((string) (int) $timestamp === $timestamp) 
        && ($timestamp <= PHP_INT_MAX)
        && ($timestamp >= ~PHP_INT_MAX);
}

如果您在php中生成时间戳,则不需要验证它。如果它是用户输入,那么在将其转换为时间戳之前,可以使用laravel validatordate验证规则。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30301602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档