2017-05-21 2 views
1

Ich verwende Stripe für die Zahlungsabwicklung. Ich möchte das Kartendatum überprüfen, ob es abgelaufen ist oder nicht. Das Datumsformat sollte 1-12 Monate/kommende Jahre sein.Validate Stripe Ablaufdatum

Zum Beispiel: 11/19, 12/18, 21.08, 01/20

Controller:

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

Form:

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

Ich habe den obigen Code aber versucht es funktioniert nicht.

Antwort

0

Sie sollten die Carbon Bibliothek verwenden, die mit Laravel geliefert wird.

Versuchen Sie, den folgenden Code:

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