บทนำ: การแปลงสตริง PHP เป็น Timestamp ใน MySQL
หากคุณเคยทำงานกับวันที่ใน PHP และ MySQL คุณอาจเคยพบกับความท้าทายในการแปลงระหว่างรูปแบบวันที่ที่แตกต่างกัน โดยเฉพาะอย่างยิ่ง หากคุณมีสตริง PHP ที่จัดรูปแบบเป็น YYYY-DD-MM
และคุณต้องการเปรียบเทียบกับ Timestamp ที่เก็บอยู่ใน MySQL งานนี้อาจดูยากในตอนแรก นักพัฒนาหลายคนพบว่าตนเองสงสัยว่า “มีวิธีที่มีประสิทธิภาพในการทำการแปลงเหล่านี้หรือไม่?” ในโพสต์บล็อกนี้เราจะสำรวจวิธีการที่มีประสิทธิภาพในการแปลงระหว่างสองรูปแบบนี้ ทำให้การเปรียบเทียบและการจัดการข้อมูลของคุณง่ายขึ้นมาก
การเข้าใจรูปแบบ
ก่อนที่จะลงมือกับวิธีการแปลง มาชี้แจงรูปแบบที่เกี่ยวข้องกัน:
- รูปแบบสตริง PHP:
YYYY-DD-MM
(เช่น2023-25-10
หมายถึง 25 ตุลาคม 2023) - Timestamp ใน MySQL: โดยปกติจะแสดงในรูปแบบ
YYYY-MM-DD HH:MM:SS
(เช่น2023-10-25 00:00:00
) หรือเป็น UNIX Timestamp
ความจำเป็นในการแปลงเกิดขึ้นโดยเฉพาะเมื่อคุณจัดเก็บวันที่หรือทำการเปรียบเทียบในคำสั่งสอบถามฐานข้อมูล
การแปลงจาก Timestamp ใน MySQL เป็นสตริง PHP
หากคุณเริ่มต้นด้วย Timestamp ใน MySQL และต้องการแปลงเป็นสตริง PHP ในรูปแบบ YYYY-DD-MM
คุณสามารถทำได้อย่างง่ายดายโดยใช้ฟังก์ชัน date
ใน PHP
ขั้นตอนในการแปลง
- ดึงข้อมูล Timestamp ของคุณ: ตรวจสอบให้แน่ใจว่าคุณมี Timestamp ของ MySQL ที่สามารถเข้าถึงได้ในโค้ด PHP ของคุณ
- ใช้ฟังก์ชัน
date
:ที่นี่,$formattedDate = date('Y-d-m', $timestamp);
$timestamp
คือ ตัวแปร Timestamp ของ MySQL ที่กำลังถูกแปลง
ตัวอย่าง
$timestamp = strtotime('2023-10-25 00:00:00'); // Timestamp ตัวอย่าง
$formattedDate = date('Y-d-m', $timestamp); // ผลลัพธ์: 2023-25-10
การแปลงจากสตริง PHP เป็น Timestamp ใน MySQL
ในทางกลับกัน หากคุณมีสตริงในรูปแบบ YYYY-DD-MM
และต้องการแปลงเป็น Timestamp ที่สามารถเก็บใน MySQL ได้ คุณจะใช้ฟังก์ชัน mktime
ขั้นตอนในการแปลง
- แยกสตริงวันที่ของคุณ: แยกสตริงออกเป็นส่วนประกอบ (ปี, วัน, เดือน)
- ใช้ฟังก์ชัน
mktime
:$timestamp = mktime(0, 0, 0, $month, $day, $year, $is_dst);
- ที่นี่,
$month
,$day
, และ$year
ต้องถูกดึงออกมาจากสตริง PHP ของคุณ
- ที่นี่,
ตัวอย่าง
$dateString = '2023-25-10'; // สตริงวันที่ตัวอย่าง
list($year, $day, $month) = explode('-', $dateString); // แยกสตริง
$timestamp = mktime(0, 0, 0, $month, $day, $year); // สร้าง Timestamp
Timestamp นี้สามารถเก็บหรือเปรียบเทียบกับข้อมูลใด ๆ ใน MySQL ได้
การเก็บวันที่ใน MySQL: ตัวเลือกของคุณ
เมื่อพูดถึงการเก็บวันที่ใน MySQL คุณมีหลายตัวเลือก:
- รูปแบบ DATE ของ MySQL: เก็บวันที่โดยตรงในรูปแบบวันที่
- UNIX Timestamp: เก็บเป็นจำนวนเต็มที่แสดงถึงจำนวนวินาทีตั้งแต่วันที่ 1 มกราคม 1970
- TIMESTAMP ของ MySQL: รูปแบบที่หลากหลายที่สามารถแปลง Timestamp ตัวเลขเป็นรูปแบบวันที่ที่อ่านได้โดยอัตโนมัติ
สำหรับการอ่านเพิ่มเติมเกี่ยวกับฟังก์ชันวันที่และเวลาของ MySQL คุณสามารถเยี่ยมชม เอกสาร MySQL เพื่อข้อมูลเพิ่มเติมเกี่ยวกับการเลือกใช้รูปแบบที่เหมาะสมสำหรับความต้องการของแอปพลิเคชันของคุณ
สรุป
การนำทางการแปลงระหว่างสตริง PHP ในรูปแบบ YYYY-DD-MM
และ Timestamp ใน MySQL ไม่จำเป็นต้องเป็นเรื่องที่ท้าทาย ด้วยวิธีการที่ชัดเจนที่ระบุไว้ในโพสต์นี้ คุณสามารถทำการแปลงและดำเนินการเปรียบเทียบวันที่ในแอปพลิเคชันของคุณได้อย่างง่ายดาย โปรดจำไว้ว่าสิ่งสำคัญคือการเลือกใช้รูปแบบที่เหมาะสมในการจัดเก็บวันที่ใน MySQL ตามความต้องการของแอปพลิเคชันของคุณ ขอให้สนุกกับการเขียนโค้ด!