Chronos มุ่งเน้นไปที่การจัดหาวัตถุวันที่/วันที่และเวลาที่ไม่เปลี่ยนรูป ออบเจ็กต์ที่ไม่เปลี่ยนรูปช่วยให้แน่ใจว่าออบเจ็กต์วันที่และเวลาจะไม่ถูกแก้ไขโดยไม่ได้ตั้งใจ ทำให้ข้อมูลสามารถคาดเดาได้มากขึ้น
การติดตั้งด้วยผู้แต่ง:
$ composer require cakephp/chronos
จากนั้นคุณสามารถใช้ Chronos:
<?phprequire 'vendor/autoload.php';use CakeChronosChronos;printf("Now: %s", Chronos::now());
Chronos เดิมเข้ากันได้กับ Carbon แต่ได้แยกออกไปและไม่ขยายคลาส PHP DateTime และ DateTimeImmutable อีกต่อไป
วัตถุที่ไม่เปลี่ยนรูปมีข้อดีหลายประการ:
การใช้วัตถุที่ไม่เปลี่ยนรูปจะปราศจากผลข้างเคียงเสมอ
วันที่และเวลาจะไม่เปลี่ยนแปลงโดยไม่ได้ตั้งใจภายใต้ส่วนอื่นๆ ของโค้ดของคุณ
เมื่อคำนึงถึงประโยชน์เหล่านั้นแล้ว มีบางสิ่งที่คุณต้องคำนึงถึงเมื่อแก้ไขออบเจ็กต์ที่ไม่เปลี่ยนรูปแบบ:
// สิ่งนี้จะสูญเสียการแก้ไข$date = new Chronos('2015-10-21 16:29:00');$date->modify('+2 hours');// สิ่งนี้จะเก็บการแก้ไข$date = new Chronos ('2015-10-21 16:29:00');$date = $date->modify('+2 ชั่วโมง');
PHP นำเสนอวัตถุ datetime เป็นส่วนหนึ่งของส่วนขยายดั้งเดิมเท่านั้น Chronos เพิ่มความสะดวกสบายหลายประการให้กับวัตถุ DateTime แบบดั้งเดิม และแนะนำวัตถุ ChronosDate
อินสแตนซ์ ChronosDate
จะหยุดเวลาไว้ที่ 00:00:00
และตั้งค่าเขตเวลาเป็นเขตเวลาเริ่มต้นของเซิร์ฟเวอร์ สิ่งนี้ทำให้เหมาะอย่างยิ่งเมื่อทำงานกับวันที่ในปฏิทิน เนื่องจากส่วนประกอบของเวลาจะตรงกันเสมอ
ใช้ CakeChronosChronosDate;$today = new ChronosDate();echo $today;// Outputs '2015-10-21'echo $today->modify('+3 hours');// Outputs '2015-10-21'
เช่นเดียวกับอินสแตนซ์ของ Chronos
วัตถุ ChronosDate
ก็ ไม่เปลี่ยนรูป เช่นกัน
สามารถดูเอกสารคำอธิบายเพิ่มเติมได้ที่ book.cakephp.org/chronos/3/en/
สามารถดูเอกสาร API ได้ที่ api.cakephp.org/chronos