PHP date time greater than today
please help what's wrong with my code? It always returns that today's date is greater than '01/02/2016' wherein 2016 is greater than in 2015.
<?php
$date_now = date("m/d/Y");
$date = date_create("01/02/2016");
$date_convert = date_format($date, "m/d/Y");
if ($date_now > $date_convert) {
echo 'greater than';
} else {
echo 'Less than';
}
P.S: 01/02/2016 is coming from the database.
Solution 1:
You are not comparing dates. You are comparing strings. In the world of string comparisons, 09/17/2015
> 01/02/2016
because 09
> 01
. You need to either put your date in a comparable string format or compare DateTime
objects which are comparable.
<?php
$date_now = date("Y-m-d"); // this format is string comparable
if ($date_now > '2016-01-02') {
echo 'greater than';
}else{
echo 'Less than';
}
Demo
Or
<?php
$date_now = new DateTime();
$date2 = new DateTime("01/02/2016");
if ($date_now > $date2) {
echo 'greater than';
}else{
echo 'Less than';
}
Demo
Solution 2:
We can convert the dates into timestamps to compare
<?php
$date_now = time(); //current timestamp
$date_convert = strtotime('2022-08-01');
if ($date_now > $date_convert) {
echo 'greater than';
} else {
echo 'Less than';
}
?>