PHP:
การแยกวันที่ออกจากสตริง
วิธีการ:
คลาส DateTime
ที่มีอยู่ใน PHP มีชุดฟังก์ชันที่ทรงพลังสำหรับการแยกวิเคราะห์และการทำงานกับวันที่ คุณสามารถสร้างอินสแตนซ์ DateTime
จากสตริงวันที่โดยใช้คอนสตรัคเตอร์, แล้วจึงจัดรูปแบบตามที่ต้องการ นี่คือวิธีการ:
$dateString = "2023-04-25 15:30:00";
$dateObject = new DateTime($dateString);
echo $dateObject->format('Y-m-d H:i:s');
// ผลลัพธ์: 2023-04-25 15:30:00
เพื่อจัดการกับสตริงที่ตามรูปแบบที่ไม่เป็นมาตรฐาน, คุณสามารถใช้เมธอด createFromFormat
, ซึ่งคุณสามารถระบุรูปแบบของวันที่ที่ป้อนเข้ามาได้อย่างแม่นยำ:
$dateString = "25-04-2023 3:30 PM";
$dateObject = DateTime::createFromFormat('d-m-Y g:i A', $dateString);
echo $dateObject->format('Y-m-d H:i:s');
// ผลลัพธ์: 2023-04-25 15:30:00
สำหรับการแยกวิเคราะห์ที่ซับซ้อนมากขึ้นซึ่งอาจไม่ได้รับการสนับสนุนโดยตรงจาก DateTime
, PHP มีฟังก์ชั่น strtotime
, ซึ่งพยายามวิเคราะห์คำอธิบายของวันและเวลาที่เขียนเป็นภาษาอังกฤษเข้าสู่รหัสเวลา Unix:
$timestamp = strtotime("next Thursday");
echo date('Y-m-d', $timestamp);
// ผลลัพธ์จะแตกต่างกันไปขึ้นอยู่กับวันที่ปัจจุบัน เช่น, "2023-05-04"
การใช้ไลบรารี่ของบุคคลที่สาม:
ถึงแม้ว่าฟังก์ชันที่มีอยู่ใน PHP จะครอบคลุมช่วงการใช้งานที่หลากหลาย, คุณอาจต้องการความสามารถในการแยกวิเคราะห์ที่ซับซ้อนยิ่งขึ้นบางครั้ง ไลบรารี่ Carbon, ซึ่งเป็นส่วนขยายของคลาส DateTime ของ PHP, ให้ชุดคุณลักษณะที่อุดมสมบูรณ์สำหรับการจัดการกับวัน/เวลา:
require 'vendor/autoload.php';
use Carbon\Carbon;
$dateString = "Tomorrow";
$date = Carbon::parse($dateString);
echo $date->toDateTimeString();
// ผลลัพธ์จะแตกต่างกันไป เช่น, "2023-04-26 00:00:00"
เมธอด parse
ของ Carbon สามารถจัดการกับรูปแบบวันที่และเวลาที่หลากหลายได้อย่างชาญฉลาด, ทำให้มันเป็นเครื่องมือที่มีค่าไม่สิ้นสุดสำหรับแอปพลิเคชันที่ต้องการความสามารถในการแยกวิเคราะห์วันที่ที่ยืดหยุ่น