PHP date time greater than today

PhpDate

Php Problem Overview


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.

Php Solutions


Solution 1 - Php

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 - Php

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';
	}

?>

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionNixxx27View Question on Stackoverflow
Solution 1 - PhpJohn CondeView Answer on Stackoverflow
Solution 2 - PhpJoyalView Answer on Stackoverflow