对于信用卡,各种在线服务对于最大有效期都有不同的值。
例如:
- 大本营:+15年(2025)
- 亚马逊:+20年(2030)
- 贝宝:+19年(2029)
这里的合理最大值是多少?有官方的指导吗?
对于信用卡,各种在线服务对于最大有效期都有不同的值。
例如:
这里的合理最大值是多少?有官方的指导吗?
Answers:
没有官方指南,因为信用卡发行商可以选择何时发行的信用卡。实际上,他们发行卡的时间越来越长。如果您要确定将来应该走多远,您应该考虑有效期,为了安全起见,请给您的客户很多年的选择时间。这样,您将来就可以证明您的应用程序。
仅供参考,许多信用卡发行商在确定是否批准购买信用卡时不使用到期日期。因此,如果您担心提供的日期不正确,处理器最终将最终决定是否批准交易,因此我不必担心。
2017年7月:一名最终用户所持卡的有效期从现在开始将近50年。
我可以在当前日期的年份中动态添加+ 15-20年,或者提供年份的文本框输入(我个人认为,键入两位数字要比滚动浏览年份列表更快)。
作为理论上限,我建议您不必考虑持卡人的预期寿命。维基百科在其关于活人传记的编辑标准中做到了这一点:
除非可靠的消息来源证实了该人的死亡,否则任何未满115岁出生的人都将受到本政策的保护。除非列出最高年龄的人,否则115岁以上的人被认为已经死亡。
因此,在您的代码中,查找当年,加115,然后将其用作信用卡到期日的理论上限。您再也不必触碰该代码。
max
以防万一最高年龄者一旦他们满116 岁就使用了表格...:[
这是一个Javascript代码段,可用于显示CC验证的未来年份的可自定义列表:
var yearsToShow = 20;
var thisYear = (new Date()).getFullYear();
for (var y = thisYear; y < thisYear + yearsToShow; y++) {
var yearOption = document.createElement("option");
yearOption.value = y;
yearOption.text = y;
document.getElementById("expYear").appendChild(yearOption);
}
<label for="expiration">Expiration Date</label>
<span id="expiration">
<select id="expMonth" name="expMonth">
<option disabled="true">Month</option>
<option value="1">Jan</option>
<option value="2">Feb</option>
<option value="3">Mar</option>
<option value="4">Apr</option>
<option value="5">May</option>
<option value="6">Jun</option>
<option value="7">Jul</option>
<option value="8">Aug</option>
<option value="9">Sep</option>
<option value="10">Oct</option>
<option value="11">Nov</option>
<option value="12">Dec</option>
</select>
<select id="expYear" name="expYear">
</select>
</span>
好的,@ Alistair。
这是ASP.NET MVC中的月份和年份。将此添加到您的视图模型:
public IList<SelectListItem> Months = new List<SelectListItem>() {
new SelectListItem() { Text="Jan", Value="01" },
new SelectListItem() { Text="Feb", Value="02" },
new SelectListItem() { Text="Mar", Value="03" },
new SelectListItem() { Text="Apr", Value="04" },
new SelectListItem() { Text="May", Value="05" },
new SelectListItem() { Text="Jun", Value="06" },
new SelectListItem() { Text="Jul", Value="07" },
new SelectListItem() { Text="Aug", Value="08" },
new SelectListItem() { Text="Sep", Value="09" },
new SelectListItem() { Text="Oct", Value="10" },
new SelectListItem() { Text="Nov", Value="11" },
new SelectListItem() { Text="Dec", Value="12" },
};
public IEnumerable<SelectListItem> Years
{
get
{
return new SelectList(Enumerable.Range(DateTime.Today.Year, 15));
}
}
这在您看来:
<fieldset>
<legend>Card expiration</legend>
<div style="float: left;">
<div class="editor-label">
@Html.LabelFor(model => model.ExpirationMonth)
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.ExpirationMonth, Model.Months)
@Html.ValidationMessageFor(model => model.ExpirationMonth)
</div>
</div>
<div style="float: left;">
<div class="editor-label">
@Html.LabelFor(model => model.ExpirationYear)
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.ExpirationYear, Model.Years)
@Html.ValidationMessageFor(model => model.ExpirationYear)
</div>
</div>
</fieldset>
在阅读了OP对亚马逊的20年最高有效期之后,我用PHP编写了这个简单的解决方案:
<select name='Expiry-Year'>
<option value="">yy</option>
<?php
for($i=0;$i<21;$i++){
echo "<option value='".(date('Y')+$i)."'>".(date('y')+$i)."</option>\n";
}
?>
</select>
这大大减少了这些last year
从表格中删除的新年请求的数量。
循环的精简版本运行速度大约是两倍:
<select name='Expiry-Year'>
<option value="">yy</option>
<?php
for($i=date('Y');$i<date('Y')+21;$i++){
echo "<option value='".$i."'>".substr($i,2)."</option>\n";
}
?>
</select>
date('Y')
和date('y')
20次通话相当慢?