I\'m comparing a date with current date(i.e. today\'s date). It is expected that the error should come only when the date to be compared is greater than today\'s date. It sh
I think you need to compare date in 'Y-m-d' or 'd-m-Y' format. I think it is not possible to compare date in 'm-d-Y' format
If posted format is in m-d-Y
, then you cannot convert it to unix timestamp directly with strtotime()
function, because it will return false.
If you need to use strtotime()
then change the input format to m/d/Y by simple str_replace().
On the other hand, you could use DateTime class, where you can directly compare objects:
$submission_date = DateTime::createFromFormat('!m-d-Y', $submission_date);
$today_date = new DateTime('today');
if ($submission_date > $today_date) {
echo "submission_date is in the future\n";
}
demo
If you need to extract some information from DateTime objects, use format() method on them, which accepts same format as date() function:
echo $today_date->format('m/d/Y'); # 12/11/2014
echo $today_date->format('m-d-Y'); # 12-11-2014
echo $today_date->format('Y-m-d'); # 2014-12-11
echo $today_date->format('Y-Y-Y'); # 2014-2014-2014
demo
As we have made changes in your code and we test it works from my side so can you try below.
$submission_date = $_POST['submission_date'];
$current_date = date('d-m-y H:i:s');
if (strtotime($submission_date) > strtotime($current_date))
{
echo "Future date not accepted";
}
Hope this helps.