Đị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.
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, YhoặcH:i:shoặcY-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;
?>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
1Hàm nâng cao
Hàm ẩn danhClosure và 'use'Hàm mũi tênHàm callbackDùng 'call_user_func'Hàm biếnTruyền tham chiếuHàm đệ quyÔn tập: tổng hợp về hàm4Mảng đa chiều
Tạo mảng 2 chiềuTruy cập phần tử trong mảng 2 chiềuChỉnh sửa phần tử trong mảng 2 chiềuLặp qua các vòng lặp lồng nhauMảng kết hợp 2 chiềuÔn tập: bài tập lưới đơn giản7Làm việc với ngày và giờ
Hàm 'date()'Dấu thời gian Unix với 'time()'Giới thiệu về đối tượng DateTimeĐịnh dạng đối tượng DateTimeChỉnh sửa đối tượng DateTimeÔn tập: Tính toán ngày2Thao tác nâng cao với mảng
Thêm phần tử bằng 'array_push'Xóa phần tử bằng 'array_pop'Thêm phần tử vào đầu mảng bằng 'array_unshift'Xóa phần tử đầu mảng bằng 'array_shift'Gộp các mảng được đánh chỉ sốGộp các mảng kết hợpTrích xuất phần tử bằng 'array_slice'Kiểm tra giá trị bằng 'in_array'Tìm khóa bằng 'array_search'Ôn tập: bài tập về danh sách phát3Sắp xếp mảng
Sắp xếp mảng có chỉ số tăng dầnSắp xếp mảng có chỉ số giảm dầnSắp xếp mảng kết hợp theo giá trịSắp xếp mảng kết hợp theo khóaSắp xếp theo thứ tự tự nhiênSắp xếp tùy chỉnh bằng 'usort'Ôn tập: Sắp xếp bảng xếp hạngTự luyện tập: Trình biên dịch PHP online