ข้อสอบถาม การบวกวันที่ โดยใช้ Javascript หน่อยครับ

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

ข้อสอบถาม การบวกวันที่ โดยใช้ Javascript หน่อยครับ

รับค่าจาก จำนวนครั้ง เพื่อนำมาหาจำนวนวันหมดอายุ แล้วนำ จำนวนวันหมดอายุมาบวกกับวันที่เริ่มStart ออกเป็นวันที่หมดอายุครับ
เช่น จำนวนครั้ง = 5

จำนวนวันหมดอายุ =10

วันที่เริ่ม 29-05-2018 + 10 = 08-06-2018                   

<div class="form-group">


                      <label for="inputEmail3" class="col-sm-4 control-label">ระบุจำนวนครั้ง</label>
                      <div class="col-sm-2">
                        <input type="text" value="" onKeyup="sumValue(this.form)" maxlength="3" class="form-control" name="qtyr2" id="qtyr2" placeholder=""  required>
                      </div>
                      <label for="inputEmail3" class="col-sm-1 control-label">วันที่เริ่ม</label>
                       <div class="col-sm-2">
                        <input type="text" value=""  onchange="date_add(this.value,'-','dmy','datestopr2',1,null,null)" class="form-control" name="datestartr2" id="datepic" placeholder=""  required>
                       </div>
                    </div>

                       <div class="form-group">
                    
                      <div class="col-sm-6">
                      
                      </div>
                       <label for="inputEmail3" class="col-sm-1 control-label">วันหมดอายุ</label>
                       <div class="col-sm-2">
                        <input type="text" value="" class="form-control" name="datestopr2" id="datestopr2"  maxlength="2" readonly="">
                        
                       </div>
                        <div class="col-sm-4">
                       </div>
                    </div>
                     

                    <div class="form-group">
                      <div class="col-sm-6">
                      
                      </div>
                      <label for="inputEmail3" class="col-sm-1 control-label">ราคา</label>
                      <div class="col-sm-2">
                        <input type="text" value="" class="form-control" name="pricer2" id="pricer2" placeholder=""  readonly="">
                        
                      </div>
                      
                    </div>
 <script language="JavaScript" type="text/javascript">
    function sumValue(myForm){

      qtyr2= myForm.elements["qtyr2"].value*1;
 
   

      if (qtyr2>="5") {
      numstopr2=qtyr2*2;
      pricermber=50;
      totalprice = (qtyr2*pricermber);

      }else if (qtyr2>="10") {
      numstopr2=qtyr2*2; 
      pricermber=48;
      totalprice = (qtyr2*pricermber);

      }else if(qtyr2>="20"){
      numstopr2=qtyr2*2;
      pricermber=46;
      totalprice = (qtyr2*pricermber);

      }else if(qtyr2>="30"){
      numstopr2=qtyr2*2;
      pricermber=45;
      totalprice = (qtyr2*pricermber);

      }else{
      pricermber=50;
      numstopr2=qtyr2*1;
      totalprice = (qtyr2*pricermber);

      }

      

      myForm.elements["pricer2"].value = totalprice;



          }
    </script>
<script type="text/javascript">
var date_add = function(date1,separate,format,targetObj,
addDate,addMonth,addYear
){
    separate = typeof separate !== 'undefined' ? separate : '-';
    format = typeof format !== 'undefined' ? format : 'dmy';
    targetObj = typeof targetObj !== 'undefined' ? targetObj : null;
    addDate = typeof addDate !== 'undefined' ? addDate : null;
    addMonth = typeof addMonth !== 'undefined' ? addMonth : null;
    addYear = typeof addYear !== 'undefined' ? addYear : null;
    var s_date=date1;
    var arr_s_date = s_date.split(separate);
    var new_s_date = arr_s_date[format.indexOf('m')]
    +'/'+arr_s_date[format.indexOf('d')]
    +'/'+arr_s_date[format.indexOf('y')];
    var e_date = new Date(new_s_date);
    if(addDate){
        e_date.setDate(e_date.getDate() + addDate);
    }
    if(addMonth){
        e_date.setMonth(e_date.getMonth() + addMonth);
    }
    if(addYear){
        e_date.setFullYear(e_date.getFullYear() + addYear);
    }        
    function pad(s) { return (s < 10) ? '0' + s : s; }
    var new_t_date = [];
    new_t_date[0]=(format.charAt(0)=='d')?pad(e_date.getDate()):
    (format.charAt(0)=='m')?pad(e_date.getMonth()+1):e_date.getFullYear();
    new_t_date[1]=(format.charAt(1)=='d')?pad(e_date.getDate()):
    (format.charAt(1)=='m')?pad(e_date.getMonth()+1):e_date.getFullYear();
    new_t_date[2]=(format.charAt(2)=='d')?pad(e_date.getDate()):
    (format.charAt(2)=='m')?pad(e_date.getMonth()+1):e_date.getFullYear();
    var returnValue=[new_t_date[0],new_t_date[1],new_t_date[2]].join(separate);    
    if(targetObj){
        document.getElementById(targetObj).value = returnValue;
    }else{
        return returnValue;
    }
    return [new_t_date[0],new_t_date[1],new_t_date[2]].join(separate);              
}  

     
</script>



ิbondsanti 113.53.245.xxx 29-05-2018 15:51:01

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

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


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


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

 ความคิดเห็นที่ 1
ดูเนื้อหานี้เป็นแนวทาง

สร้างฟังก์ชั่น javascript บวกวัน เดือน หรือปี อย่างง่าย http://niik.in/686 
https://www.ninenik.com/content.php?arti_id=686 via @ninenik

ให้ลองไล่จาก บวกวันที่ แล้วย้อนลำดับการคิด กลับมา

โดยถ้าการบวกวันที่ ไม่มีปัญหา ที่เหลือก็หาค่าที่จะเอาไปบวก โดยใช้เงื่อนไขที่มี


ninenik 223.24.26.xxx 29-05-2018
 ความคิดเห็นที่ 2
จากตัวอย่าง http://niik.in/158

<script type="text/javascript">

   function sumValue(myForm){
    


      qtyr2= myForm.elements["qtyr2"].value*1;
 


      if (qtyr2>="5") {
      numstopr2=qtyr2*2;
      pricermber=50;
      totalprice = (qtyr2*pricermber);

      }else if (qtyr2>="10") {
      numstopr2=qtyr2*2; 
      pricermber=48;
      totalprice = (qtyr2*pricermber);

      }else if(qtyr2>="20"){
      numstopr2=qtyr2*2;
      pricermber=46;
      totalprice = (qtyr2*pricermber);

      }else if(qtyr2>="30"){
      numstopr2=qtyr2*2;
      pricermber=45;
      totalprice = (qtyr2*pricermber);

      }else{
      pricermber=50;
      numstopr2=qtyr2*1;
      totalprice = (qtyr2*pricermber);

      }

    

      myForm.elements["pricer2"].value = totalprice;
      myForm.elements["numstopr2"].value = numstopr2;



    var tt = document.getElementById('datepic').value;
    var num = parseInt(document.getElementById('numstopr2').value);
    var date = new Date(tt);

      date.setDate(date.getDate() num);

      mkMonth=date.getMonth() 1;
      mkMonth=new String(mkMonth);
      if(mkMonth.length==1){
      mkMonth="0"+mkMonth;
      }
      mkDay=date.getDate();
      mkDay=new String(mkDay);
      if(mkDay.length==1){
      mkDay="0"+mkDay;
      } 
      mkYear=date.getFullYear();
      document.getElementById("datestopr2").value = mkDay+"-"+mkMonth+"-"+mkYear;

      }




 
</script>
                    <div class="form-group">
                      <label for="inputEmail3" class="col-sm-4 control-label">ระบุจำนวนครั้ง</label>
                      <div class="col-sm-2">
                        <input type="text" value="" onKeyup="sumValue(this.form)" maxlength="3" class="form-control" name="qtyr2" id="qtyr2" placeholder="" required>
                      </div>
                      <label for="inputEmail3" class="col-sm-1 control-label">วันที่เริ่ม</label>
                       <div class="col-sm-2">
                        <input type="text" value="" onchange="sumValue(this.form)" class="form-control" name="numstopr2" id="numstopr2" placeholder="">
                        <input type="text" value="" onchange="sumValue(this.form)" class="form-control" name="datestartr2" id="datepic" placeholder=""  required>
                       </div>
                    </div>

                       <div class="form-group">
                    
                      <div class="col-sm-6">
                      
                      </div>
                       <label for="inputEmail3" class="col-sm-1 control-label">วันหมดอายุ</label>
                       <div class="col-sm-2">
                        <input type="text" value="" class="form-control" name="datestopr2" id="datestopr2" readonly="">
                        
                       </div>
                        <div class="col-sm-4">
                       </div>
                    </div>
                     

                    <div class="form-group">
                      <div class="col-sm-6">
                      
                      </div>
                      <label for="inputEmail3" class="col-sm-1 control-label">ราคา</label>
                      <div class="col-sm-2">
                        <input type="text" value="" class="form-control" name="pricer2" id="pricer2" placeholder=""  readonly="">
                        
                      </div>
                      
                    </div>


ผลลัพธ์ไม่ถูกต้องครับ


bondsanti 113.53.245.xxx 30-05-2018 12:27
 ความคิดเห็นที่ 3
ดูตัวอย่างนี้เป็นแนวทาง



<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 
    <title>Document</title> 
    <link rel="stylesheet" href="https://unpkg.com/bootstrap@4.1.0/dist/css/bootstrap.min.css" >
</head>
<body>
 
 <div class="container"> <br>
  <form id="myform1" name="form1" method="post" action="" >
    <div class="form-group row">
      <label for="inputEmail3" class="col-sm-2 control-label">ระบุจำนวนครั้ง</label>
      <div class="col-sm-4">
        <input type="number" value="0"  maxlength="3" class="form-control calc_data" name="qtyr2" id="qtyr2" placeholder="" required>
      </div>
      </div>
	<div class="form-group row">      
      <label for="inputEmail3" class="col-sm-2 control-label">วันที่เริ่ม</label>
      <div class="col-sm-4">
        <input type="text" value=""  class="form-control calc_data" name="numstopr2" id="numstopr2" placeholder="">
        <input type="text" value="30-05-2018"  class="form-control calc_data" name="datestartr2" id="datepic" placeholder=""  required>
      </div>
    </div>
    <div class="form-group row">
      <label for="inputEmail3" class="col-sm-2 control-label">วันหมดอายุ</label>
      <div class="col-sm-4">
        <input type="text" value="" class="form-control" name="datestopr2" id="datestopr2" readonly="">
      </div>
    </div>
    <div class="form-group row">
      <label for="inputEmail3" class="col-sm-2 control-label">ราคา</label>
      <div class="col-sm-4">
        <input type="text" value="" class="form-control" name="pricer2" id="pricer2" placeholder=""  readonly="">
      </div>
    </div>
  </form>
</div>

 
<script src="https://unpkg.com/jquery@3.3.1/dist/jquery.min.js"></script>
<script src="https://unpkg.com/bootstrap@4.1.0/dist/js/bootstrap.min.js"></script>
<script type="text/javascript">
var date_add = function(date1,separate,format,targetObj,
addDate,addMonth,addYear
){
    separate = typeof separate !== 'undefined' ? separate : '-';
    format = typeof format !== 'undefined' ? format : 'dmy';
    targetObj = typeof targetObj !== 'undefined' ? targetObj : null;
    addDate = typeof addDate !== 'undefined' ? addDate : null;
    addMonth = typeof addMonth !== 'undefined' ? addMonth : null;
    addYear = typeof addYear !== 'undefined' ? addYear : null;
    var s_date=date1;
    var arr_s_date = s_date.split(separate);
    var new_s_date = arr_s_date[format.indexOf('m')]
    +'/'+arr_s_date[format.indexOf('d')]
    +'/'+arr_s_date[format.indexOf('y')];
    var e_date = new Date(new_s_date);
    if(addDate){
        e_date.setDate(e_date.getDate() + addDate);
    }
    if(addMonth){
        e_date.setMonth(e_date.getMonth() + addMonth);
    }
    if(addYear){
        e_date.setFullYear(e_date.getFullYear() + addYear);
    }        
    function pad(s) { return (s < 10) ? '0' + s : s; }
    var new_t_date = [];
    new_t_date[0]=(format.charAt(0)=='d')?pad(e_date.getDate()):
    (format.charAt(0)=='m')?pad(e_date.getMonth()+1):e_date.getFullYear();
    new_t_date[1]=(format.charAt(1)=='d')?pad(e_date.getDate()):
    (format.charAt(1)=='m')?pad(e_date.getMonth()+1):e_date.getFullYear();
    new_t_date[2]=(format.charAt(2)=='d')?pad(e_date.getDate()):
    (format.charAt(2)=='m')?pad(e_date.getMonth()+1):e_date.getFullYear();
    var returnValue=[new_t_date[0],new_t_date[1],new_t_date[2]].join(separate);    
    if(targetObj){
        document.getElementById(targetObj).value = returnValue;
    }else{
        return returnValue;
    }
    return [new_t_date[0],new_t_date[1],new_t_date[2]].join(separate);              
}  
$(function(){
		
		$("#qtyr2").on("input",function(){
			var start_date = $("#datepic").val();
			var num_qty = $("#qtyr2").val();
			var day_add = num_qty*2;
			$("#numstopr2").val(day_add);
			date_add(start_date,'-','dmy','datestopr2',day_add);
		});
		
});
</script>
</body>
</html>


ninenik 223.24.186.xxx 30-05-2018
 ความคิดเห็นที่ 4
ขอบคุุณครับ ได้แล้วครับผม yesyesyesheart


ิbondsanti 113.53.245.xxx 31-05-2018 12:36
1






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