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()///位を降りる