php 中的比较错误,以解决日期问题

Error in comparison in php, to solve question with dates

我正在尝试使用 php 和 mysql 做一个合同管理应用程序,我对日期有一些疑问。

我需要知道今天和合同中具体日期之间的时间,或者如果少于一个月,它应该显示剩余天数..

问题是,通过比较了解合同结束时间是过去还是将来,似乎行不通!

link 查看代码:link to project

$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;

您正在比较字符串与日期对象

替换

if($fim < $hoje) {

if($fim_data < $hoje) {

使用 Felippe Duarte 的解决方案更正了代码

 $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;