Menu
CoddyTech

Giới thiệu về đối tượng DateTime

Thuộc phần Logic và luồng chương trình trong hành trình PHP của Coddy. Bài học 48 trên 68.

Mặc dù các hàm theo kiểu thủ tục như date(), time() và strtotime() hoạt động tốt với các thao tác ngày tháng cơ bản, PHP còn cung cấp một cách tiếp cận mạnh mẽ và linh hoạt hơn thông qua lớp DateTime. Phương pháp hướng đối tượng này giúp tổ chức tốt hơn, cú pháp rõ ràng hơn và cung cấp nhiều chức năng nâng cao hơn để làm việc với ngày tháng và thời gian.

Lớp DateTime biểu diễn một thời điểm cụ thể dưới dạng đối tượng, sau đó bạn có thể thao tác và định dạng bằng nhiều phương thức khác nhau. Khác với các hàm thủ tục xử lý dấu thời gian và chuỗi định dạng riêng biệt, đối tượng DateTime gói gọn cả dữ liệu ngày giờ lẫn các thao tác bạn có thể thực hiện với dữ liệu đó.

<?php
$now = new DateTime();
echo $now->format('Y-m-d H:i:s');  // In ra kết quả tương tự: 2024-03-15 14:30:25
?>

Khi tạo một đối tượng DateTime mới mà không truyền tham số nào, đối tượng sẽ tự động nhận ngày giờ hiện tại.

Cách tiếp cận hướng đối tượng giúp code của bạn dễ đọc và dễ bảo trì hơn, nhất là khi bạn cần thực hiện nhiều thao tác trên cùng một ngày. Cách này đặc biệt hữu ích khi bạn làm việc với các phép tính ngày tháng phức tạp hơn và các yêu cầu định dạng.

challenge icon

Thử thách

Dễ

Bạn sẽ nhận một đầu vào: chuỗi ngày tháng theo định dạng Y-m-d H:i:s (ví dụ: 2024-03-15 14:30:25).

Đọc chuỗi ngày tháng đầu vào, tạo một đối tượng DateTime bằng cách dùng chuỗi ngày tháng này làm tham số, rồi in trực tiếp đối tượng DateTime.

Khi bạn tạo một đối tượng DateTime với tham số là chuỗi ngày tháng, đối tượng sẽ biểu thị thời điểm cụ thể đó thay vì ngày và giờ hiện tại. Chỉ cần echo đối tượng để hiển thị.

Định dạng đầu vào: Một dòng chứa chuỗi ngày tháng theo định dạng Y-m-d H:i:s (ví dụ: 2024-03-15 14:30:25)

Đầu ra dự kiến: Ngày và giờ được định dạng theo Y-m-d H:i:s

Tự làm thử

<?php
// Đọc chuỗi ngày tháng đầu vào
$dateString = trim(fgets(STDIN));

// TODO: Tạo đối tượng DateTime từ chuỗi ngày tháng rồi in ra


?>
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch PHP online