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