8

シンプルな日付形式 mm/dd/yyyy の検証だけで十分です...

$rules = array(
    'renewal_date' =>  array('required', 'date_format:?')
    );

日付形式を何に設定すればよいですか? Laravel のドキュメントは、はるかに優れている可能性があります。

4

7 に答える 7

12

ドキュメントは私にはかなり明確です。使用する必要があります

date_format:形式

「検証中のフィールドは、date_parse_from_format PHP 関数に従って定義された形式と一致する必要があります。」

それを見る: http://php.net/manual/en/function.date-parse-from-format.php、次のようなことができることがわかります:

$rules = array(
    'renewal_date' =>  array('required', 'date_format:"m/d/Y"')
    );

これは純粋な PHP テストです。

print_r(date_parse_from_format("m/d/Y", "04/01/2013"));

Laravel で手動でテストすることもできます。

$v = Validator::make(['date' => '09/26/13'], ['date' => 'date_format:"m/d/Y"']);
var_dump( $v->passes() );

私にとってそれは印刷です

真偽値

于 2013-09-17T14:28:37.953 に答える
6

同様の問題が発生しましたが、ad/m/Y 日付形式です。私の場合、問題は、同じフィールドに「date」と「date_format」の両方のルールを定義したことです。

public static $rules = array(
    'birthday' => 'required|date|date_format:"d/m/Y"',
    ...

解決策は、「日付」バリデーターを削除することです。両方を使用することはできません。このような:

public static $rules = array(
    'birthday' => 'required|date_format:"d/m/Y"',
    ...

その後、すべて順調です。

于 2014-06-28T03:31:02.947 に答える
0

date_format がうまくいかなかったので、このカスタム検証を行いました

Validator::extend('customdate', function($attribute, $value, $parameters) {
  $parsed_date = date_parse_from_format ( "Y-m-d" , $value);
  $year = $parsed_date['year'];
  $month = $parsed_date['month'];
  $month = $month <= 9 ? "0" . $month : $month;
  $day = $parsed_date['day'];
  $day = $day <= 9 ? "0" . $day : $day;
  return checkdate($month, $day, $year);
});

$validation = Validator::make(
  array('date' => $num),
  array('date' => 'customdate')
);
于 2014-01-16T01:49:10.610 に答える
0

PHP date_parse_from_format(Laravel 4)を使用します。

'birthday' => 'date_format:m/d/Y'

検証メッセージも"m/d/Y"、平均的なユーザーには理解できないものを使用します。 誕生日が m/d/Y の形式と一致しません

この無効な応答に対してメッセージをカスタマイズすることをお勧めします。 誕生日が mm/dd/yyyy の形式と一致しません

于 2014-06-10T02:02:50.337 に答える
0

出典:ここをクリック

のように使用できます

$rules = [
    'start_date'        => 'date_format:d/m/Y|after:tomorrow',
    'end_date'          => 'date_format:d/m/Y|after:start_date',
];
于 2016-04-19T06:37:27.560 に答える