Lớp DateTimeImmutable
Lớp DateTimeImmutable là phiên bản bất biến tương đương của DateTime. Nó tạo một đối tượng mới với bất kỳ sửa đổi nào, làm cho nó dễ dự đoán và an toàn hơn khi làm việc.
Thời điểm hiện tại
Hãy tạo một đối tượng DateTimeImmutable
với ngày và giờ hiện tại:
<?php
$date = new DateTimeImmutable();
?>
Ngày cụ thể
Hãy tạo một đối tượng DateTimeImmutable với ngày được chỉ định:
<?php
$date = new DateTimeImmutable('2025-12-31');
?>
Ngày và giờ cụ thể
Hãy tạo một đối tượng DateTimeImmutable
với ngày và giờ được chỉ định:
<?php
$date = new DateTimeImmutable('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 cho trước
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 DateTimeImmutable();
echo $date->format('Y-m-d H:i:s');
?>
Kết quả (sẽ thay đổi tùy vào thời điểm thực thi):
'2025-11-15 14:25:00'
Định dạng ngày đã cho
Hãy định dạng một ngày được chỉ định:
<?php
$date = new DateTimeImmutable('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
Thêm khoảng thời gian vào một ngày
được thực hiện thông qua phương thức add:
<?php
$date = new DateTimeImmutable('2025-05-15');
$interval = new DateInterval('P10D'); // 10 ngày
$newDate = $date->add($interval);
echo $newDate->format('Y-m-d');
?>
Kết quả thực thi mã:
'2025-05-25'
Trừ khoảng thời gian
Trừ khoảng thời gian từ một ngày
được thực hiện thông qua phương thức sub:
<?php
$date = new DateTimeImmutable('2025-05-15');
$interval = new DateInterval('P1M2D'); // 1 tháng và 2 ngày
$newDate = $date->sub($interval);
echo $newDate->format('Y-m-d');
?>
Kết quả thực thi mã:
'2025-04-13'
Thiết lập ngày mới
Có thể thiết lập một ngày mới cho
đối tượng DateTimeImmutable. Điều này được thực hiện
thông qua phương thức setDate:
<?php
$date = new DateTimeImmutable();
$newDate = $date->setDate(2024, 12, 31);
echo $newDate->format('Y-m-d');
?>
Kết quả thực thi mã:
'2024-12-31'
Thiết lập thời gian
Có thể thiết lập thời gian mới cho
đối tượng DateTimeImmutable. Điều này được thực hiện
thông qua phương thức setTime:
<?php
$date = new DateTimeImmutable();
$newDate = $date->setTime(15, 30, 0);
echo $newDate->format('H:i:s');
?>
Kết quả thực thi mã:
'15:30:00'
So sánh ngày tháng
Có thể so sánh các đối tượng chứa ngày:
<?php
$date1 = new DateTimeImmutable('2025-01-01');
$date2 = new DateTimeImmutable('2025-02-01');
if ($date1 < $date2) {
echo '+++';
} else {
echo '---';
}
?>
Tạo đối tượng với múi giờ
Khi tạo đối tượng DateTimeImmutable
có thể chỉ định múi giờ:
<?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');
?>
Kết quả thực thi mã:
'2025-12-31 23:59:59 Europe/Moscow'
Xem thêm
-
lớp
DateInterval,
xác định một khoảng thời gian -
lớp
DateTimeZone,
xác định một múi giờ