Lớp DateTime
Lớp DateTime là công cụ chính để làm việc với ngày và giờ theo phong cách OOP. Nó cho phép tạo các đối tượng ngày/giờ, sửa đổi chúng và định dạng đầu ra.
Thời điểm hiện tại
Hãy tạo một đối tượng DateTime
với ngày và giờ hiện tại:
<?php
$date = new DateTime();
?>
Ngày cụ thể
Hãy tạo một đối tượng DateTime với ngày được chỉ định:
<?php
$date = new DateTime('2025-12-31');
?>
Ngày giờ cụ thể
Hãy tạo một đối tượng DateTime
với ngày và giờ được chỉ định:
<?php
$date = new DateTime('2025-12-31 12:59:59');
?>
Định dạng đầu ra
Ngày đã tạo có thể được xuất ra theo định dạng đã chỉ định
bằng phương thức format. Hãy thực hiện
điều này cho thời điểm hiện tại:
<?php
$date = new DateTime();
echo $date->format('Y-m-d H:i:s');
?>
Kết quả (sẽ thay đổi tùy thuộc vào thời điểm thực thi):
'2025-11-15 14:25:00'
Định dạng ngày đã chỉ định
Hãy định dạng một ngày đã cho:
<?php
$date = new DateTime('2025-12-31');
echo $date->format('d.m.Y');
?>
Kết quả thực thi mã:
'31.12.2025'
Thêm khoảng thời gian
Việc thêm khoảng thời gian vào ngày
được thực hiện thông qua phương thức add:
<?php
$date = new DateTime('2025-05-15');
$interval = new DateInterval('P10D'); // 10 ngày
$date->add($interval);
echo $date->format('Y-m-d');
?>
Kết quả thực thi mã:
'2025-05-25'
Trừ khoảng thời gian
Việc trừ khoảng thời gian khỏi ngày
được thực hiện thông qua phương thức sub:
<?php
$date = new DateTime('2025-05-15');
$interval = new DateInterval('P1M2D'); // 1 tháng và 2 ngày
$date->sub($interval);
echo $date->format('Y-m-d');
?>
Kết quả thực thi mã:
'2025-04-13'
Đặt ngày mới
Bạn có thể đặt ngày mới cho
đối tượng DateTime. Điều này được thực hiện
thông qua phương thức setDate:
<?php
$date = new DateTime();
$date->setDate(2025, 12, 31);
echo $date->format('Y-m-d');
?>
Kết quả thực thi mã:
'2025-12-31'
Đặt thời gian
Bạn có thể đặt thời gian mới cho
đối tượng DateTime. Điều này được thực hiện
thông qua phương thức setTime:
<?php
$date = new DateTime();
$date->setTime(15, 30, 0);
echo $date->format('H:i:s');
?>
Kết quả thực thi mã:
'15:30:00'
So sánh ngày
Bạn có thể so sánh các đối tượng chứa ngày:
<?php
$date1 = new DateTime('2025-01-01');
$date2 = new DateTime('2025-02-01');
if ($date1 < $date2) {
echo '+++';
} else {
echo '---';
}
?>
Chênh lệch giữa các ngày
Bằng phương thức diff, bạn có thể tính toán
chênh lệch giữa các ngày. Chênh lệch
được trả về dưới dạng đối tượng
DateInterval:
<?php
$date1 = new DateTime('2023-01-01');
$date2 = new DateTime('2023-02-15');
$interval = $date1->diff($date2);
echo $interval->format('%m tháng %d ngày');
?>
Kết quả thực thi mã:
'1 tháng 14 ngày'
Múi giờ
Khi tạo đối tượng DateTime
bạn có thể chỉ định múi giờ:
<?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');
?>
Kết quả thực thi mã:
'2025-12-31 23:59:59 Europe/Moscow'
Xem thêm
-
lớp
DateTimeImmutable,
tạo ra ngày không thể thay đổi -
lớp
DateInterval,
xác định khoảng thời gian -
lớp
DateTimeZone,
xác định múi giờ