ต้องการให้แสดงจำนวณเงินที่คำนวณจากอายุแล้ว

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ต้องการให้แสดงจำนวณเงินที่คำนวณจากอายุแล้ว

ต้องการให้แสดงจำนวณเงินที่คำนวณจากอายุแล้ว
 <script language="javascript">
function getAge(o)
 {
	var tmp = o.value.split("-");
	var d = tmp[0];
	var m = tmp[1];
	var y = tmp[2];
	var nowdt = new Date();
	var nd = parseInt(nowdt.getDate());
	var nm = parseInt(nowdt.getMonth());
	var ny = parseInt(nowdt.getFullYear() 543);
	var age = "";
	var ageYear = 0;
	var ageMonth = 0;	
	if(d != "" && m != "" && y != "")
	{
		var s = new Date(y, parseInt(m)-1, d);
		d = parseInt(s.getDate()); 
		m = parseInt(s.getMonth()); 
		y = parseInt(s.getFullYear());
		
		ageYear = ny - y; 
		if(nm > m)
		{	
			ageMonth = nm-m;
		}else if(nm == m){
			if(nd >= d)
			{	
				ageMonth = 0;	
			}else{c=2.2;
				ageMonth = 11;
				ageYear = ageYear - 1;
			}
		}else{
			ageMonth = 12-m+nm;
			ageYear = ageYear - 1;
		}
		age = ageYear + " ปี " + ageMonth + " เดือน";	
	}else{
		age = "";	
	}
	document.getElementById("age").value=age;
 }
 		 
</script>


<td align="right" nowrap="nowrap" bgcolor="#FFCCCC"> วัน/เดือน/ปีเกิด ผู้สูงอายุ : </td>
      <td bgcolor="#FFCCCC"><input name="p_birthday" type="taxt" id="datepicker" size="15" onChange="getAge(this);"></td>
      <tr>
       <td align="right" nowrap="nowrap" bgcolor="#FFCCCC">  อายุจริง : </td>
         <td bgcolor="#FFCCCC"><input type="text" disabled="true" id="age" size="15" ></td> 
    </tr>
    <tr valign="baseline">
      <td align="right" nowrap="nowrap" bgcolor="#FFCCCC">จำนวนเงิน :</td>
      <td bgcolor="#FFCCCC"><input type="text" id="money" size="20" /></td>
      </tr>


Janjung 11-11-2014 22:50:29

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
60 ปี 600 บาท
70     700
80      800
90 ปีขึ้นไป 1000 บาท รบกวนทีนะคะ ทำไม่ได้แล้ว TT


janjung 11-11-2014 22:58
 ความคิดเห็นที่ 2
ลองใช้ DateTimePicker ดาวน์โหลดได้ที่เว็บ
 
หรือคลิกขวาแล้วเลือก save ไฟล์จากลิ้งค์ด้านล่าง
 
แตกไฟล์แล้วเอาเฉพาะไฟล์ 
jquery.datetimepicker.css
jquery.datetimepicker.js
 
ไว้ใช้งาน
 
และก็ใช้งานไฟล์ moment.js เพือหาจำนวนปีที่ห่าง
 
แนะนำ moment.js สำหรับการจัดการกับ เวลา ด้วย javascript 
 
ตัวอย่าง
 
Birthday:

Age:

Money:


โค้ด

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="js/jquery.datetimepicker.css">
</head>
<body>
    
<div style="margin:auto;width:400px;">

Birthday:<br>
<input type="text" name="birthday" id="birthday" value="">   
<br>
Age:<br>
<input type="text" name="age" id="age" value="">
<br>
Money:<br>
<input type="text" name="money" id="money" value="">

</div>    
    
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>  
<script src="js/jquery.datetimepicker.js"></script>
<script type="text/javascript" src="http://momentjs.com/downloads/moment-with-locales.min.js"></script>  
<script type="text/javascript">
$(function(){
 
    $("#birthday").datetimepicker({
        format:'d-m-Y',  // กำหนดรูปแบบวันที่ ที่ใช้ เป็น 00-00-0000
        lang:'th',  // แสดงภาษาไทย
        yearStart:1914,  // ช่วงเลือกปีเริ่มต้น ใช้ ค.ศ.
        yearOffset:543,  // ใช้ปี พ.ศ. บวก 543 เพิ่มเข้าไปในปี ค.ศ
        timepicker:false,  // กำหนด ไม่แสดงตัวเลือกเวลา
         onSelectDate:function(){  // ถ้าเลือกวันแล้ว 
            $("#birthday").datetimepicker('hide'); // ให้ซ่อน datetimepicker
        },       
    });
//    
    $("#birthday").on("change",function(){
        var dayBirth=$(this).val();
        var getdayBirth=dayBirth.split("-");
        var YB=getdayBirth[2]-543;
        var MB=getdayBirth[1];
        var DB=getdayBirth[0];
        var setdayBirth=YB+"-"+MB+"-"+DB;
        var yearData=moment(setdayBirth).fromNow('true');
        yearData=parseInt(yearData);
        $("#age").val(yearData);
        var moneyData=0;
        if(yearData>=90){
            moneyData=1000;
        }else if(yearData>=80){
            moneyData=800;
        }else if(yearData>=70){
            moneyData=700;
        }else if(yearData>=60){
            moneyData=600;
        }
        $("#money").val(moneyData);
    });

    
});
</script>      
</body>
</html>


ninenik 12-11-2014
 ความคิดเห็นที่ 3
ได้แล้วนะคะ ขอบคุนมากๆเลย รบกวนถามเรื่องถ้าเกิดว่าเลือกแล้วอายุต่ำกว่า 60 ปี ให้มีข้อความแสดงขึ้นมาแจ้งเตือนต้องทำยังไงหรอคะ @Ninenik 


janjung 12-11-2014 11:25
 ความคิดเห็นที่ 4
ต่อคำสั่งตรง if elseif


if(yearData>=90){
	moneyData=1000;
}else if(yearData>=80){
	moneyData=800;
}else if(yearData>=70){
	moneyData=700;
}else if(yearData>=60){
	moneyData=600;
}else{
	alert("less then 60");	
}


ninenik 12-11-2014
 ความคิดเห็นที่ 5
ขอบคุณมากๆเลยคะ คุณ Ninenik


janjung 12-11-2014 14:50
 ความคิดเห็นที่ 6
รบกวนสอบถามนะคะ ถ้าต้องการให้แสดงว่าอายุกี่ปีและกี่เดือนด้วย แสดงเดือนด้วยต้องใส่ code อย่างไรค่ะ ขอบคุณคะ  Ninenik 


janjung 17-11-2014 13:35
 ความคิดเห็นที่ 7
ถ้าใช้เดือนต้องปรับโค้ด ใช้ฟังก์ช่ันอีกอัน

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="js/jquery.datetimepicker.css">
</head>
<body>
    
<div style="margin:auto;width:400px;">

Birthday:<br>
<input type="text" name="birthday" id="birthday" value="">   
<br>
Age:<br>
<input type="text" name="age" id="age" value="">
<br>
Money:<br>
<input type="text" name="money" id="money" value="">

</div>    
    
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>  
<script src="js/jquery.datetimepicker.js"></script>
<script type="text/javascript" src="http://momentjs.com/downloads/moment-with-locales.min.js"></script>  
<script type="text/javascript">
$(function(){
 
    $("#birthday").datetimepicker({
        format:'d-m-Y',  // กำหนดรูปแบบวันที่ ที่ใช้ เป็น 00-00-0000
        lang:'th',  // แสดงภาษาไทย
        yearStart:1914,  // ช่วงเลือกปีเริ่มต้น ใช้ ค.ศ.
        yearOffset:543,  // ใช้ปี พ.ศ. บวก 543 เพิ่มเข้าไปในปี ค.ศ
        timepicker:false,  // กำหนด ไม่แสดงตัวเลือกเวลา
         onSelectDate:function(){  // ถ้าเลือกวันแล้ว 
            $("#birthday").datetimepicker('hide'); // ให้ซ่อน datetimepicker
        },       
    });
//    
    $("#birthday").on("change",function(){
        var dayBirth=$(this).val();
        var getdayBirth=dayBirth.split("-");
        var YB=getdayBirth[2]-543;
        var MB=getdayBirth[1];
        var DB=getdayBirth[0];
        
        var setdayBirth=moment(YB+"-"+MB+"-"+DB);  
        var setNowDate=moment();
        var yearData=setNowDate.diff(setdayBirth, 'years', true); // ข้อมูลปีแบบทศนิยม
        var yearFinal=Math.round(setNowDate.diff(setdayBirth, 'years', true),0); // ปีเต็ม
        var yearReal=setNowDate.diff(setdayBirth, 'years'); // ปีจริง
        var monthDiff=Math.floor((yearData-yearReal)*12); // เดือน
        var str_year_month=yearReal+" ปี "+monthDiff+" เดือน"; // ต่อวันเดือนปี
        $("#age").val(str_year_month);
        
        var moneyData=0;
        if(yearFinal>=90){
            moneyData=1000;
        }else if(yearFinal>=80){
            moneyData=800;
        }else if(yearFinal>=70){
            moneyData=700;
        }else if(yearFinal>=60){
            moneyData=600;
        }
        $("#money").val(moneyData);
    });

    
});
</script>      
</body>
</html>


ตัวอย่าง

Birthday:

Age:

Money:


ninenik 17-11-2014
 ความคิดเห็นที่ 8
ได้แล้วค่ะ ขึ้นข้อมูลตามที่ต้องการเลย ขอบคุณมากๆคะ Ninenik


janjung 17-11-2014 16:57
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ