js取得者年齢(x歳x月x日)
1177 ワード
// , X X X
// 1. ,2.
function calAge(birthday){
var strDate1 = birthday + " 00:00:00.0";
var strDate2 = new Date().format('Y-m-d') + " 00:00:00.0";
strDate1=strDate1.substring(0,strDate1.lastIndexOf(".")).replace(/-/g, "/ ");
strDate2=strDate2.substring(0,strDate2.lastIndexOf(".")).replace(/-/g, "/ ");
// - /
var date1 = Date.parse(strDate1);
var date2 = Date.parse(strDate2);
var day = Math.ceil((date2-date1)/(60*60*1000*24));
var age = ''; //
var year = Math.floor(day/365);
var y = day%365;
var month = Math.floor(y/30);
var d = Math.floor(day%365%30);
if(year > 0){
age += year + ' ';
}
if(month > 0){
age += month + ' ';
}
if(d>0){
age += d+' ';
}
return age;
}
注:現在は毎月30日間を固定して計算し、その後の加入を最適化しています.Math.ceeir()//進数は、小数で1を加算します.
Math.round()//四捨五入
Math.flor()///位を降りる