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!