So sánh chuỗi ngày tháng trong PHP
Giả sử chúng ta có hai ngày ở định dạng văn bản như sau:
<?php
$date1 = '2020-12-01';
$date2 = '2019-12-01';
?>
Trong trường hợp này có thể thực hiện so sánh hai ngày này và biết ngày nào lớn hơn:
<?php
var_dump($date1 > $date2);
?>
Việc so sánh các ngày này diễn ra như thế nào? Vấn đề là các ngày của chúng ta là các chuỗi và PHP so sánh chúng như các chuỗi. Tức là trước tiên nó so sánh các ký tự đầu tiên của hai ngày: nếu chúng giống nhau, thì PHP so sánh các ký tự thứ hai, và cứ tiếp tục như vậy cho đến khi tìm thấy sự khác biệt. Nhờ việc trong định dạng ngày của chúng ta, năm được đặt trước, sau đó đến tháng, rồi đến ngày, mà việc so sánh như vậy mới có thể thực hiện được.
Điều quan trọng nữa là các ngày phải ở cùng một định dạng. Trong trường hợp của chúng ta, dấu phân cách các phần của ngày là dấu gạch ngang. Tất nhiên, điều này không bắt buộc. Ví dụ, có thể đặt dấu chấm:
<?php
$date1 = '2020.12.01';
$date2 = '2019.12.01';
?>
Hoặc thậm chí bỏ hẳn dấu phân cách:
<?php
$date1 = '20201201';
$date2 = '20191201';
?>
Điều chính, để việc so sánh được chính xác, thứ tự sắp xếp phải như sau: đầu tiên là năm, sau đó đến tháng, rồi đến ngày.
Hãy viết code để so sánh hai ngày được cho dưới đây và in ra thông báo cho biết ngày nào lớn hơn:
$date1 = '2020-11-30';
$date2 = '2020-12-01';