-2

I want compare two dates but something is wrong.

My code:

<?php

date_default_timezone_set('Europe/Lisbon');
$hoje = date("Y/m/d");
$data_mudanca = date("Y")."-10-24";

echo 'Today: '.$hoje.'<br>';
echo 'ChangeDay: '.$data_mudanca.'<br>';

if($hoje > $data_mudanca){
    echo 'Today is bigger';
}else{
    echo 'ChangeDay is bigger';
}

?>

My result:

Today: 2015/10/23 ChangeDay: 2015-10-24 Today is bigger


but Today is not bigger.

John Conde
  • 217,595
  • 99
  • 455
  • 496
FBN
  • 185
  • 1
  • 1
  • 11

2 Answers2

2

Your dates are not in the same format, much less a comparable one. Either use DateTime() objects which are comparable, or put them in YYYY-MM-DD string format which is also comparable:

<?php

date_default_timezone_set('Europe/Lisbon');
$hoje = new DateTime();
$data_mudanca = new DateTime(date("Y")."-10-24");

if($hoje > $data_mudanca){
    echo 'Today is bigger';
}else{
    echo 'ChangeDay is bigger';
}

?>

or

<?php

date_default_timezone_set('Europe/Lisbon');
$hoje = date("Y-m-d");
$data_mudanca = date("Y")."-10-24";

if($hoje > $data_mudanca){
    echo 'Today is bigger';
}else{
    echo 'ChangeDay is bigger';
}

?>
John Conde
  • 217,595
  • 99
  • 455
  • 496
2

Add strtotime() php function

    <?php
    date_default_timezone_set('Europe/Lisbon');
    $hoje = strtotime(date("Y/m/d"));
    $data_mudanca = strtotime(date("Y")."-10-24");

    echo 'Today: '.$hoje.'<br>';
    echo 'ChangeDay: '.$data_mudanca.'<br>';

    if($hoje > $data_mudanca){
        echo 'Today is bigger';
    }else{
        echo 'ChangeDay is bigger';
    }

    ?>
Thamilhan
  • 13,040
  • 5
  • 37
  • 59