SQL datetime

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

SQL datetime
***Controller***
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$qRecruit = $this->db->query($sql);
$rowRecruit = $qRecruit->row();
$rowRecruit = (array) $rowRecruit;
         
foreach($rowRecruit as $key => $val){   
    switch($key){
            case 'birthday': $this->convertYeartoShow($val); break
        case 'idcard_start_date': $this->convertYeartoShow($val); break;
        case 'idcard_expire_date': $this->convertYeartoShow($val); break;
        case 'graduate': $this->convertYeartoShow($val); break;
        default: break;
    }
    $data[$key]=$val;
}
$this->load->view('recruitment/registerApp',$data);
------------------------------------------------------------------------------------------------------
***View***
1
<input id="birthday"  name="birthday" value="<?php echo $birthday; ?>" type="text" />
------------------------------------------------------------------------------------------------------
ตอนเลือกวันที่จะเป็นแบบนี้ 

ก่อนบันทึกลงฐานข้อมูลนำไปconvertเป็นค.ศก่อนบันทึก(สามารถบันทึกได้)
แต่พอจะselectข้อมูลเพื่อมาโชว์ในหน้าวิว(ต้องการให้ผู้ใช้แก้ไขข้อมูล) กลับขึ้นแบบนี้

>>นำไปconvert แล้วที่ convertYeartoShow แต่ก็ยังขึ้นแบบตอนselect

อยากทราบว่าผิดพลาดที่ขั้นตอนไหนครับ
ปล.function ที่convert ดัดแปลงมาจากบทความนี้ครับ
แนวทางการจัดรูปแบบข้อความวันที่ ให้อยู่ในรูปแบบมาตรฐาน ใน php
https://www.ninenik.com/content.php?arti_id=802 via @ninenik


Zephyrzeez 24-08-2017 08:58:29

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

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


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


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

 ความคิดเห็นที่ 1
  แนะนำไม่ถูกเหมือนกัน คงต้องลองไล่ลำดับการทำงานอย่างละเอียด หรือเช็คซ้ำๆ หลายครั้ง
เท่าที่ดูๆ ก็น่าจะอยู่ในขั้นตอนการเรียกใช้ การบันทึก เช็คกลับไปทีละจุด ก็น่าจะเจอ


ninenik 24-08-2017
 ความคิดเห็นที่ 2
ลอง var_dump หลังforeach loop แล้ว ค่าที่ดึงมาจากsql อยุ่ในรูปแบบเดียวกันคือ "1989-08-12 00:00:00.000"
กะลังสงสัยว่ามันมีปัญหาตรง switch case ที่ส่งค่าไป convert รึเปล่า


zephyrzeez 24-08-2017 10:03
 ความคิดเห็นที่ 3
อาจจะมีปัญหาที่ตอนพาไปconvert ที่ convertYeartoShow
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function convertYeartoShow($yearDB)
    {   /*
        $Y = substr($yearDB,0,4);
        $Y += 543;
        $m = substr($yearDB,5,2);
        $d = substr($yearDB,8,2);
        $yearDB_new = implode("-",array($d,$m,$Y));
        return $yearDB_new;
        */
        /*
        list($date,$time) = explode(" ",$yearDB);
        list($Y,$m,$d) = explode("-",$date);
        $Y += 543;
        $yearDB_new = implode("-",array($d,$m,$Y));
        return $yearDB_new;
        */
         
        list($date,$time) = explode(" ", $yearDB);
        $arr_data = explode("-", $date);
        $Y = $arr_data[0]+543;
        $m = $arr_data[1];
        $d = $arr_data[2];
        $dateNew = implode("-",array($d,$m,$Y));
        return $dateNew;
    }
ช่วยดูหน่อยครับว่า ผิดตรงไหน


zephyrzeez 24-08-2017 14:19
1






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