การคำนวณวันที่ในอนาคตหรืออดีต

PHP:
การคำนวณวันที่ในอนาคตหรืออดีต

วิธีการ:

PHP ทำให้การคำนวณวันที่เป็นเรื่องง่ายด้วย DateTime และ DateInterval ลองดูสิ:

<?php
// วันที่ของวันนี้
$today = new DateTime();
echo $today->format('Y-m-d H:i:s') . "\n";

// เพิ่ม 10 วัน
$today->add(new DateInterval('P10D'));
echo $today->format('Y-m-d H:i:s') . "\n";

// ลบออก 2 เดือน
$today->sub(new DateInterval('P2M'));
echo $today->format('Y-m-d H:i:s') . "\n";
?>

ผลลัพธ์อาจเป็น:

2023-04-01 12:34:56
2023-04-11 12:34:56
2023-02-11 12:34:56

การศึกษาลึก

สมัยก่อน, การคำนวณวันที่ใน PHP มีแนวโน้มที่จะผิดพลาดมากขึ้น strtotime แม้จะยังมีประโยชน์, แต่ก็อาจทำให้คุณต้องเจอกับกรณีพิเศษที่ยาก DateTime และ DateInterval นำมาซึ่งความแม่นยำและความชัดเจนแบบวัตถุ

มีทางเลือกหรือไม่? แน่นอน ไลบรารีเช่น Carbon ห่อหุ้มฟังก์ชันวันที่ของ PHP เพื่อการอ่านที่ง่ายขึ้นและคุณสมบัติเพิ่มเติม แต่สำหรับหลาย ๆ กรณี คลาสที่มีใน PHP เองก็ทำได้ดีอยู่แล้ว

ภายใน, DateTime::add() และ DateTime::sub() จะเปลี่ยนแปลงวัตถุ, ดังนั้นไม่จำเป็นต้องมีการกำหนดใหม่ พวกเขาจัดการหน่วยเวลาอย่างต่อเนื่อง, พิจารณาสิ่งต่าง ๆ เช่นปีอธิกสุรทินและการเปลี่ยนแปลงเวลาออมแสง ซึ่งอาจเป็นปัญหาใหญ่หลังจากนั้น

ดูเพิ่มเติม