验证条带到期日期

时间:2017-05-21 07:20:01

标签: php laravel

我正在使用Stripe进行付款处理。我想验证卡的日期是否已过期。日期格式应为1-12个月/即将到来的年份。

例如: 11/19 12/18 08/21 01/20 < / p>

控制器:

$exp = explode( '/', Input::get( 'card_expiry' ) );
if ( ( $exp[0] <= 12 ) && $exp[0] > 0 && ( is_int( $exp[1] ) ) ) {

} else {
    return back()->withErrors( 'Add a valid card expiry date' );
}

形式:

<div class="form-group">
    <label>Expiry</label>
    {{ Form::text('card_expiry', '', [ 'class' => 'form-control', 'placeholder' => 'MM/YY' , 'data-parsley-maxlength'=>"5",'required'=>'' ]) }}
    @if($errors->first('card_expiry'))
    <div class="text-danger">{{ $errors->first('card_expiry') }}</div>
    @endif
</div>

我尝试了上面的代码,但它没有用。

1 个答案:

答案 0 :(得分:0)

您应该使用Laravel打包的 Carbon 库。

请尝试以下代码:

try {
    $date = Carbon::createFromFormat('m/y', Input::get('card_expiry'));
    if ($date->isFuture()) {

    } else {
        return back()
                  ->withErrors( 'Add a valid card expiry date' );
    }
} catch(InvalidArgumentException $e) {
    return back()
               ->withErrors('The expiration date does not seem to be a valid month/year');
}