วิธีการแปลง ข้อมมูล วันที่จาก Excel เพื่อบันทึกลงในฐานข้อมูล

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
Ittichai_chupol
PHP VIP Members
PHP VIP Members
โพสต์: 5410
ลงทะเบียนเมื่อ: 19/09/2018 10:33 am

วิธีการแปลง ข้อมมูล วันที่จาก Excel เพื่อบันทึกลงในฐานข้อมูล

โพสต์ที่ยังไม่ได้อ่าน โดย Ittichai_chupol »

ถ้าการเก็บข้อมูล เมื่อครั้งก่อนๆ นั้นมั้งจะเป็นการการเขียนข้อมูลรายละเอียดต่างลงในกระดาษ จากนัั้นก็จะมีการบันทึกข้อมูลลลง ในคอมมพิเวเตอร์โดยส่วนใหญ่จะใช่ Excel มาเป็นโปรแกรมที่ช่วยในการเก็บเก็บข้อมูลเหล่านั้น โดยในบางตอนนี้นั้นจะมีระบบฐานข่้อมูลเข้ามาช่วยในการเก็บข้อมูลลงในระบบคอมพิวเตอร์ แต่ทั้งนี้ถ้าหากในกรณีที่ผู้ใช้งานต้องการที่จะนำข้อมูลที่เคยบันทึกข้อมูลไว้ใน Excel นั้นเข้ามาบันทึกลงในฐานข้อมูลลนั้นก็สามารถที่จะทำได้ จาก ที่นี้ แต่ทั้งวิธีการข้างต้นนี้ก็อาจจะมีปัญที่สำหรับกรณีที่มีการบันทึกรูปแบบวันที่ใน Excel เพราะจะทำให้ค่าที่ได้มานั้น เป็นรูปแบบของ Text ไม่ใช่รูปแบบวันที่แบบทีี่อยู่ใน Excel แต่ทั้งนี้ก็มีมีวิธีการที่ใช้ php สำหรับการแก้ไขปัญหา ด้วยวิธีการดังนี้


1.เลขที่ได้มาจากการ import Excel นั้นจะเป็นรูปแบบ Text เช่น ถ้าบันทึกวันที่ แบบ พ.ศ. ใน Excel ไว้คือ 25/11/2539 ผลที่ได้ก็คือ 233718 หรือ บันทึก แบบ ค.ศ. ใน Excel ไว้คือ 25/11/1996 ผลที่ได้ก็คือ 35392 ซึ่งทั้ง 2 แบบคือวันเดียวกัน แต่ผลลัพธ์นั้นจะต่างกัน นั้นเพราะว่า ใน Excel จะมีการอ่านค่าวันที่โดยนับจากวันที่ 01/01/1900 เป็นจุดเริ่มต้น แ้ล่วจะทำการ บวกจำนวนวันไปเรื่อยๆ นั้นคือถ้าหากเป้นวันที่ 01/01/1901 ผลที่ได้ก็คือ 365 นั้นเอง

---** ถ้าหากต้องการทราบว่า เมื่อมีการบันทึกวันที่ลงไปใน Excel แล้วจะได้ผลลัพธ์เป็นอย่างไรก็สามารถหาคำตอบได้จาก

โค้ด: เลือกทั้งหมด


<?php
$date1=date_create("1900-01-01");
$date2=date_create("Y-m-d") ;//วันที่ที่ต้องการทราบ
$diff=date_diff($date1,$date2);
echo $diff->format("%R%a days");
?>

2.นำจำนวนวันที่ที่เป็น Text ตามต้องการมาแล้วนั้นก็นำมาปรับ ให้เป็นรูปแบบวันที่ ได้จากตัวอย่างนี้

เช่นเลขที่ได้คือ 233718 ก็นำมาใช้งานดังนี้

โค้ด: เลือกทั้งหมด


<?php
$strStartDate = "1900-01-01";
$date = 233718;
$strto_dayte =  strtotime("+" . $date . "days", strtotime($strStartDate));

echo date("Y-m-d", $strto_dayte);
?>




ผลลัพธ์ที่ได้ คือ 2539-11-25



บทความที่เกี่ยวข้อง
การสร้าง Extension ใน phpbb
การสร้าง controller สำหรับ phpbb
Event listenner - เขียน Extension บน phpBB 3.1
ขอให้วันนี้เป็นวันที่ดี
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 39