การเอาวันที่มาบวกัน มีปัญหาครับ

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

การเอาวันที่มาบวกัน มีปัญหาครับ
// function date
$date_go = "$rn_gostart"; //กำหนดค้นวันที่เริ่ม
$date_end = "$rn_endstart"; //กำหนดค้นวันที่กลับ
$datetime1 = new DateTime($date_go);
$datetime2 = new DateTime($date_end);
$datetotal = $datetime1->diff($datetime2);
$total= $datetotal->format('%a') * 1800;  //ผลการคำนวณ


มีปํญหาตรงที่ว่า ถ้าผมจอง วัน นี้ เช่น 10/07/2559 + 10/07/2559  มันจะ = 0 ครับ แต่ถ้า จอง เป็น 10/01/2559+11/07/2559 ก็ได้ค่าที่ปกติ


Awordmart2 10-07-2016 20:26:12

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

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


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


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

 ความคิดเห็นที่ 1

สอบถามเพิ่มครับ



 

  <script type="text/javascript">
                $(function(){
                  var obj_a = $("#rn_amount");
                  var obj_b = $("#seating");

                  // a เปลี่ยนเมื่อ keyup แล้ว b เปลี่ยน ตามเงื่อนไขค่า a
                  obj_a.on("keyup",function(){
                  var value_obj_a = parseInt($(this).val()); // เก็บค่า a ไว้ในตัวแปร  (parseInt คือเปลงเป็นเลข)
                  if(value_obj_a>13){ // กำหนดเงื่อนไขให้กับค่า a
                  obj_b.val("ติดต่อพนักงาน"); // เปลี่ยนค่า b เป้น 3
                }else if (value_obj_a>9) {

                  obj_b.val("13 ที่นั่ง");
                }else{
                  obj_b.val("9 ที่นั่ง");
              }


              if(value_obj_a>12){
                    $("#myselect").show();
                  }
                });
                              });
              </script>


              <div class="row">
                  <div class="col-md-6">
                    <div class="form-group">
                      <label>จำนวนวนคนที่ไป</label>
                      <script language="javascript">
                      function checkInput(ob) {
                        var invalidChar= /[^0-9]/gi
                        if(invalidChar.test(ob.value)) {

                          ob.value = ob.value.replace(invalidChar,"");
                        }
                      }
                      </script>
                      <input type="text" name="rn_amount" id="rn_amount" onkeyup="checkInput(this)" class="form-control"><br>
                    </div>
                  </div>
                    <div class="col-md-6">
                      <div class="form-group">
                        <label class="display-block text-semibold">ประเภทรถตู้</label>

                        <input type="text" id="seating"  name="id_seating" class="form-control" readonly>
                      </div>
                    </div>
                        <div class="col-md-6">
                          <div class="form-group">

                        <select name="myselect" id="myselect" class="form-control" style="display:none;">
                          <option value="1">1 คัน</option>
                          <option value="2">2 คัน </option>
                          <option value="3">3 คัน </option>
                          <option value="4">4 คัน </option>

  </select>


$total = $_POST['total'];
$myselect = $_POST['myselect'];

$t = '2';
// function date
$date_go = "$rn_gostart"; //กำหนดค้นวันที่เริ่ม
$date_end = "$rn_endstart"; //กำหนดค้นวันที่กลับ
$datetime1 = new DateTime($date_go);
$datetime2 = new DateTime($date_end);
$datetotal = $datetime1->diff($datetime2);
$total= $datetotal->format('%a') * 1800*$myselect;  //ผลการคำนวณ

 

คือกรณีถ้าเลือก 11 ตรงส่วน select ก็จะไม่โชว์แต่ปัญหาตรงที่เวลา เอามาบวกกับวันที่ครับ

 

ถ้าตรง select ไม่โชว์ผมอยากให้มันกำหนดเป็น 1  1 = คันครับ ทำเป็นโค้ดยังไงครับ



awordmart2 10-07-2016 20:43
 ความคิดเห็นที่ 2
ใช้ if else ถ้าเป็นวันที่เดียวกับ ก็เพิ่มค่าจาก 0 เป็น ค่าที่ต้องการ


ninenik 10-07-2016
 ความคิดเห็นที่ 3
ใส่ครอบส่วนนี้หรอครับ

  1. $date_go = "$rn_gostart"//กำหนดค้นวันที่เริ่ม  
  2. $date_end = "$rn_endstart"//กำหนดค้นวันที่กลับ  
  3. $datetime1 = new DateTime($date_go);  
  4. $datetime2 = new DateTime($date_end);  
  5. $datetotal = $datetime1->diff($datetime2);  
  6. $total$datetotal->format('%a') * 1800*$myselect;  //ผลการคำนวณ  


awordmart2 10-07-2016 22:23
 ความคิดเห็นที่ 4
ใช่ กำหนด 
$date_go = "$rn_gostart"; //กำหนดค้นวันที่เริ่ม  
$date_end = "$rn_endstart"; //กำหนดค้นวันที่กลับ  
$datetime1 = new DateTime($date_go);  
$datetime2 = new DateTime($date_end);  
$datetotal = $datetime1->diff($datetime2);  
if(วันที่1 == วันที่สอง){
    $total= ค่าที่ต้องการที่ไม่เท่ากับ 0;
}else{
   $total= $datetotal->format('%a') * 1800*$myselect;  //ผลการคำนวณ  
}


ninenik 10-07-2016
 ความคิดเห็นที่ 5
   $total = $_POST['total'];
$myselect = $_POST['myselect'];

$t = '2';
// function date
$date_go = "$rn_gostart"; //กำหนดค้นวันที่เริ่ม
$date_end = "$rn_endstart"; //กำหนดค้นวันที่กลับ
$datetime1 = new DateTime($date_go);
$datetime2 = new DateTime($date_end);
$datetotal = $datetime1->diff($datetime2);

if ($datetotal = 0 ) {
$total = '1800';
}else {
 $total= $datetotal->format('%a') * 1800*$myselect;  //ผลการคำนวณ
}

ได้ 0 ครับ ถ้าวันเดียวกัน


awordmart2 10-07-2016 23:18
 ความคิดเห็นที่ 6
 
$date_go = "$rn_gostart"; //กำหนดค้นวันที่เริ่ม
$date_end = "$rn_endstart"; //กำหนดค้นวันที่กลับ
$datetime1 = new DateTime($date_go);
$datetime2 = new DateTime($date_end);
$datetotal = $datetime1->diff($datetime2);
if($date_go == $date_end){
    $total=  1800;
}else{
   $total= $datetotal->format('%a') * 1800*$myselect;  //ผลการคำนวณ
}


ขอบคุณครับ


awordmart2 10-07-2016 23:29
1






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