SQL datetime

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

SQL datetime
***Controller***
$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***
<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 1.20.143.xxx 24-08-2017 08:58:29

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

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


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


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

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


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


zephyrzeez 1.20.143.xxx 24-08-2017 10:03
 ความคิดเห็นที่ 3
อาจจะมีปัญหาที่ตอนพาไปconvert ที่ convertYeartoShow
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 1.4.246.xxx 24-08-2017 14:19
1






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