การเอาวันที่มาบวกัน มีปัญหาครับ
ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา การเอาวันที่มาบวกัน มีปัญหาครับ
การเอาวันที่มาบวกัน มีปัญหาครับ
โดย:
Awordmart2 IP:
124.120.236.xxx วันที่:
10-07-2016 เวลา:
20:26:12
// 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 ก็ได้ค่าที่ปกติ
มีปํญหาตรงที่ว่า ถ้าผมจอง วัน นี้ เช่น 10/07/2559 + 10/07/2559 มันจะ = 0 ครับ แต่ถ้า จอง เป็น 10/01/2559+11/07/2559 ก็ได้ค่าที่ปกติ

คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
ความคิดเห็นที่
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 = คันครับ ทำเป็นโค้ดยังไงครับ

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

ความคิดเห็นที่
3
ใส่ครอบส่วนนี้หรอครับ
- $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; //ผลการคำนวณ

ความคิดเห็นที่
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; //ผลการคำนวณ }

ความคิดเห็นที่
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 ครับ ถ้าวันเดียวกัน


ความคิดเห็นที่
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; //ผลการคำนวณ }
ขอบคุณครับ
