2017-05-21 43 views
1

我正在使用Stripe進行付款處理。我想驗證卡片的日期是否已過期。日期格式應該是1-12個月/即將到來的年份。驗證條紋有效日期

例如:11/1912/188月21日01/20

控制器:

$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> 

我試過上面的代碼,但它不工作。

回答

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'); 
}