我有一个简单的表格来输入配偶细节。表格如下;
HTML
<div class="form-group">
<input type="text" name="name" id="name" placeholder="Name">
</div>
<div class="form-group">
<input type="text" name="ic_no" id="ic_no" placeholder="IC No.">
</div>
<div class="form-group">
<input type="date" name="dob" id="dob" placeholder="DOB" >
</div>
ic_no将像870505113223
。我能够得到我们YYYY-mm-dd
出生的前6位数字;
的jQuery
$("#ic_no").blur(function(){
var ic_no = $("#ic_no").val();
var dob = ic_no.substr(0, 6);
console.log(dob); //will output 870505
$("#dob").val(dob); //this will give an error
});
我的问题是,我如何让6位数字自动填充dob输入?
从上面的代码中,我会收到此错误,
The specified value "870505" does not conform to the required format, "yyyy-MM-dd".
答案 0 :(得分:2)
假设870505
与日期1987-05-05
匹配。
你可以这样做:
var y = "19" + dob.substring(0, 2);
var m = dob.substring(2, 4);
var d = dob.substring(4, 6);
var f = y + "-" + m + "-" + d;
$("#dob").val(f);
答案 1 :(得分:0)
在您的情况下,您无法仅使用6位数进行转换。你必须得到你的ic_no的所有时间戳然后转换它:
$("#ic_no").blur(function(){
var ic_no = $("#ic_no").val();
d = new Date(ic_no),
month = d.getMonth()+1, //it is begin with 0 so you must add 1
day = d.getDate(),
year = d.getFullYear();
month = CheckZero(month);
day = CheckZero(day);
//check if you can add 0 or not
function CheckZero(number) {
if (number < 10) {
number = "0" + number;
}
return number;
}
var finished_date = year+'-'+month+'-'+day;
$("#dob").val(finished_date );
});