Menu
CoddyTech

Định dạng đố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 49 trên 68.

Bây giờ bạn đã có một đối tượng DateTime, bạn cần chuyển nó thành chuỗi dễ đọc. Phương thức format() giúp bạn chuyển đối tượng DateTime thành định dạng ngày tháng hoặc thời gian bạn cần để hiển thị.

Phương thức format() sử dụng đúng các ký tự định dạng mà bạn đã học với hàm date(). Sự nhất quán này giúp bạn dễ dàng áp dụng kiến thức sẵn có cho các đối tượng DateTime. Bạn gọi trực tiếp phương thức trên đối tượng DateTime và truyền chuỗi định dạng làm tham số.

<?php
$now = new DateTime();
echo $now->format("Y-m-d");     // Đầu ra: 2024-03-15
echo $now->format("H:i:s");     // Đầu ra: 14:30:25
echo $now->format("l, F j, Y"); // Đầu ra: Friday, March 15, 2024
?>

Cách tiếp cận hướng đối tượng với format() giúp tổ chức code tốt hơn, đặc biệt khi bạn làm việc với cùng một ngày nhiều lần. Bạn chỉ cần tạo đối tượng DateTime một lần, rồi có thể định dạng ngày theo nhiều cách khác nhau trong code mà không phải gọi đi gọi lại các hàm theo hướng thủ tục.

challenge icon

Thử thách

Dễ

Bạn sẽ nhận hai đầu vào: một chuỗi ngày giờ có định dạng Y-m-d H:i:s và một chuỗi định dạng. Đầu vào thứ nhất là một ngày giờ cụ thể (ví dụ: 2024-03-15 14:30:25), còn đầu vào thứ hai là chuỗi định dạng chỉ định cách hiển thị ngày giờ (ví dụ: l, F j, Y).

Đọc cả hai đầu vào, tạo một đối tượng DateTime bằng chuỗi ngày giờ, dùng phương thức format() để chuyển đổi đối tượng DateTime theo chuỗi định dạng đã cho, rồi in kết quả đã định dạng.

Định dạng đầu vào:

  • Dòng thứ nhất: Một chuỗi ngày giờ có định dạng Y-m-d H:i:s (ví dụ: 2024-03-15 14:30:25)
  • Dòng thứ hai: Một chuỗi định dạng (ví dụ: l, F j, Y hoặc H:i:s hoặc Y-m-d)

Đầu ra mong đợi: Ngày giờ được định dạng theo chuỗi định dạng đã cho

Tự làm thử

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

// Đọc chuỗi định dạng
$formatString = trim(fgets(STDIN));

// TODO: Viết code của bạn bên dưới
// Tạo đối tượng (object) DateTime và định dạng ngày tháng theo chuỗi định dạng


// In ra ngày tháng đã định dạng
echo $formattedDate;
?>
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