我正在编写验证器规则,用于在添加新的雄辩模型记录之前检查数据是否有效。
对于字符串、小数和整数,这一点非常清楚。
但是时间戳字段呢?
我在我的一个数据库迁移中使用timestamp方法添加了列,它工作得很好。在执行查询之前,我唯一需要做的就是确保传递的值是一个有效的时间戳。
有没有一种直接/简单的方法,或者我应该为此编写一个regexp?
谢谢
发布于 2015-07-08 17:49:00
我认为是这样验证的..
$rules = ['start_at' => 'date_format:Y-m-d H:i:s'];让我们测试一下这个规则
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 !
}再次尝试使用不需要的日期格式进行测试..
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
发布于 2018-05-01 20:11:24
使用此规则
public function rules()
{
return [
'date_time' => 'date_format:Y-m-d H:i:s'
];
}发布于 2015-05-18 19:26:36
在laravel中没有时间戳的验证规则。如果你需要验证时间戳,你可以使用类似这样的东西:
function isValidTimeStamp($timestamp)
{
return ((string) (int) $timestamp === $timestamp)
&& ($timestamp <= PHP_INT_MAX)
&& ($timestamp >= ~PHP_INT_MAX);
}如果您在php中生成时间戳,则不需要验证它。如果它是用户输入,那么在将其转换为时间戳之前,可以使用laravel validator的date验证规则。
https://stackoverflow.com/questions/30301602
复制相似问题