คลาส DateTimeImmutable
คลาส DateTimeImmutable เป็นอะนาล็อกที่เปลี่ยนแปลงไม่ได้ของ DateTime มันสร้างอ็อบเจ็กต์ใหม่ทุกครั้งที่มีการปรับเปลี่ยน ซึ่งทำให้การทำงานคาดเดาได้มากขึ้นและปลอดภัยกว่า
ช่วงเวลาปัจจุบัน
มาสร้างอ็อบเจ็กต์ DateTimeImmutable
ด้วยวันที่และเวลาปัจจุบันกัน:
<?php
$date = new DateTimeImmutable();
?>
วันที่เฉพาะเจาะจง
มาสร้างอ็อบเจ็กต์ DateTimeImmutable ด้วยวันที่ที่ระบุ:
<?php
$date = new DateTimeImmutable('2025-12-31');
?>
วันที่และเวลาเฉพาะเจาะจง
มาสร้างอ็อบเจ็กต์ DateTimeImmutable
ด้วยวันที่และเวลาที่ระบุ:
<?php
$date = new DateTimeImmutable('2025-12-31 12:59:59');
?>
การจัดรูปแบบผลลัพธ์
วันที่ที่สร้างขึ้นสามารถแสดงผลในรูปแบบที่กำหนด
ได้ด้วยเมธอด format มาลองทำ
สำหรับช่วงเวลาปัจจุบัน:
<?php
$date = new DateTimeImmutable();
echo $date->format('Y-m-d H:i:s');
?>
ผลลัพธ์ (จะเปลี่ยนแปลงขึ้นอยู่กับช่วงเวลาที่รันโค้ด):
'2025-11-15 14:25:00'
การจัดรูปแบบวันที่ที่กำหนด
มาจัดรูปแบบวันที่ที่กำหนดกัน:
<?php
$date = new DateTimeImmutable('2025-12-31');
echo $date->format('d.m.Y');
?>
ผลลัพธ์การทำงานของโค้ด:
'31.12.2025'
การเพิ่มช่วงเวลา
การเพิ่มช่วงเวลาเข้าไปในวันที่
ดำเนินการผ่านเมธอด add:
<?php
$date = new DateTimeImmutable('2025-05-15');
$interval = new DateInterval('P10D'); // 10 วัน
$newDate = $date->add($interval);
echo $newDate->format('Y-m-d');
?>
ผลลัพธ์การทำงานของโค้ด:
'2025-05-25'
การลบช่วงเวลา
การลบช่วงเวลาออกจากวันที่
ดำเนินการผ่านเมธอด sub:
<?php
$date = new DateTimeImmutable('2025-05-15');
$interval = new DateInterval('P1M2D'); // 1 เดือน และ 2 วัน
$newDate = $date->sub($interval);
echo $newDate->format('Y-m-d');
?>
ผลลัพธ์การทำงานของโค้ด:
'2025-04-13'
การตั้งค่าวันที่ใหม่
สามารถตั้งค่าวันที่ใหม่ให้กับ
อ็อบเจ็กต์ DateTimeImmutable ได้ สิ่งนี้ทำผ่าน
เมธอด setDate:
<?php
$date = new DateTimeImmutable();
$newDate = $date->setDate(2024, 12, 31);
echo $newDate->format('Y-m-d');
?>
ผลลัพธ์การทำงานของโค้ด:
'2024-12-31'
การตั้งค่าเวลา
สามารถตั้งค่าเวลาใหม่ให้กับ
อ็อบเจ็กต์ DateTimeImmutable ได้ สิ่งนี้ทำผ่าน
เมธอด setTime:
<?php
$date = new DateTimeImmutable();
$newDate = $date->setTime(15, 30, 0);
echo $newDate->format('H:i:s');
?>
ผลลัพธ์การทำงานของโค้ด:
'15:30:00'
การเปรียบเทียบวันที่
สามารถเปรียบเทียบอ็อบเจ็กต์ที่มีวันที่ได้:
<?php
$date1 = new DateTimeImmutable('2025-01-01');
$date2 = new DateTimeImmutable('2025-02-01');
if ($date1 < $date2) {
echo '+++';
} else {
echo '---';
}
?>
การสร้างอ็อบเจ็กต์พร้อมเขตเวลา
เมื่อสร้างอ็อบเจ็กต์ DateTimeImmutable
สามารถระบุเขตเวลาได้:
<?php
$timeZone = new DateTimeZone('Europe/Moscow');
$date = new DateTimeImmutable('2025-12-31 23:59:59', $timeZone);
echo $date->format('Y-m-d H:i:s e');
?>
ผลลัพธ์การทำงานของโค้ด:
'2025-12-31 23:59:59 Europe/Moscow'
ดูเพิ่มเติม
-
คลาส
DateInterval,
ซึ่งกำหนดช่วงเวลา -
คลาส
DateTimeZone,
ซึ่งกำหนดเขตเวลา