การแยกวันที่ออกจากสตริง

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 สามารถจัดการกับรูปแบบวันที่และเวลาที่หลากหลายได้อย่างชาญฉลาด, ทำให้มันเป็นเครื่องมือที่มีค่าไม่สิ้นสุดสำหรับแอปพลิเคชันที่ต้องการความสามารถในการแยกวิเคราะห์วันที่ที่ยืดหยุ่น