Ошибка в сравнении в php, чтобы решить вопрос с датами - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь создать приложение для управления контрактами, используя php и mysql, и у меня возникают некоторые вопросы относительно дат.

Мне нужно знать время, которое существует между сегодняшними и конкретными датами вконтракт, или если осталось меньше месяца, он должен отображать оставшиеся дни.

проблема в том, что сравнение, чтобы узнать, в конце или в конце контракта, кажется, неработа!

ссылка для проверки кода: ссылка на проект

$hoje = date_create();
$fim = '2022-11-11';
$fim_data = date_create($fim);
$diff   = date_diff( $hoje, $fim_data );
$meses =  (($diff->format('%y')*12)+$diff->format('%m'));
$dias = $diff->days;
var_dump($fim < $hoje);

if($fim < $hoje) {
    $result = "Contract has ended";
} elseif($meses >=1 ) {
    $result = $meses . " months";
    echo '<br>';
} else {
    $result =  $dias . " days";
};
echo '<br>';
echo $result;

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Исправленный код с помощью решения от Филиппа Дуарте

 $hoje = date_create();
$fim = '2018-11-11';
$fim_data = date_create($fim);


$diff   = date_diff( $hoje, $fim_data );



$meses =  (($diff->format('%y')*12)+$diff->format('%m'));
$dias = $diff->days;


var_dump($fim_data < $hoje);

if($fim_data < $hoje){$result = "não aplicavel";}
elseif($meses >=1 ){
$result = $meses . " meses";
echo '<br>';}
else{
$result =  $dias . " dias";};
echo '<br>';
echo $result;
0 голосов
/ 17 октября 2018

Вы сравниваете строку с объектом даты

Замените

if($fim < $hoje) {

на

if($fim_data < $hoje) {
...