Laravel时间戳确认[重复]

osh3o9ms  于 2022-11-26  发布在  其他
关注(0)|答案(2)|浏览(188)

此问题在此处已有答案

Date validation in laravel 5(3个答案)
昨天关门了。
我想确保接收的数据是有效的时间戳。有没有办法确保starts_at和expired_at字段是时间戳?

$rules = [
    'user_id' => 'required|int|exists:users,id',
    'starts_at' => 'required|int|min:1',
    'expires_at' => 'required|int|gt:starts_at',
];
wecizke3

wecizke31#

您可以在验证时间戳时使用date规则。然后,如果要比较两个日期,则可以使用beforeafter规则。

$rule = [
    'starts_at' => 'date',
    'expired_at' => 'date|after:starts_at',
]
t3psigkw

t3psigkw2#

您可以在AppServiceProvider中定义多格式日期验证

class AppServiceProvider extends ServiceProvider  
{
  public function boot()
  {
    Validator::extend('new-format', function($attribute, $value, $formats) {

      foreach($formats as $format) {

        $parsed = date_parse_from_format($format, $value);

        // validation success
        if ($parsed['error_count'] === 0 && $parsed['warning_count'] === 0) {
          return true;
        }
      }

      // validation failed
      return false;
    });
  }
}

现在您可以使用自定义验证规则:
'starts_at' => 'new-format:"Y-m-d H:i:s.u","Y-m-d"'

相关问题