Một vấn đề hay gặp trong quá trình xử lý PHP datetime là tình huống format date từ định dạng đọc ở Việt Nam là dd/mm/yyy sang để so sánh với date hiện tại. Code Tốt chia sẻ cách làm đơn giản nhất.
Giả sử bạn đang có 1 định dạng output là dd/mm/yyyy, ví dụ 21/11/2025. Bạn muốn so sánh với ngày hôm nay để trả ra giá trị là true/false (hết hạn hay còn hạn), vậy sẽ làm như thế nào?
$end_date = get_field('end_date'); // Giả sử ở đây mình lấy từ dữ liệu ACF, ví dụ trả ra string "21/11/2025" $formatted_end_date = DateTime::createFromFormat('d/m/Y', $end_date); $end_date_timestamp = $formatted_end_date->getTimestamp(); $is_expiry_date = time() > $end_date_timestamp;
Khi sử dụng class DateTime để tạo ra, giá trị được làm đúng theo tiêu chuẩn để so sánh timestamp giữa 2 date. Một số bài viết trên Stackoverflow sẽ tư vấn bạn dùng str_replace, nhưng theo mình không nên.
Have fun!
Giám đốc tại Công ty CP CODE TỐT. Quản lý ngôn ngữ bản địa tiếng Việt tại WordPress. Là tác giả chính tại codetot.net, Khôi muốn ghi lại một sốvấn đề kỹ thuật trong quá trình phát triển các dự án website với khách hàng.