我正在使用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>
我尝试了上面的代码,但它没有用。
答案 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');
}