【问题标题】:Comparing date in PHP [closed]比较PHP中的日期[关闭]
【发布时间】:2021-11-22 13:49:47
【问题描述】:

我正在做一个项目,我必须将医疗证明的到期日期与当前日期进行比较。 如果到期日期距当前日期超过两个月,我应该在用户页面中设置一个绿色图标;如果距离到期日期不到两个月,我会设置一个黄色图标,否则,如果到期日期已过,我会显示一个红色图标。

为了执行上述操作,我编写了以下代码:

$medical = new DateTime($data->medical_expiration);
$today = new DateTime();

$compare = $today->modify('+2 month');

if($compare < $medical) {
    $this->data['check_medical'] = 'success';
} elseif($compare >= $medical && $today <= $medical) {
    $this->data['check_medical'] = 'warning';
} else {
    $this->data['check_medical'] = 'alarm';
}

我认为 else if 块应该将图标设置为黄色......但它不起作用。当到期日期从今天起不到两个月时,我会看到一个红色图标。 代码有什么问题? 非常感谢任何改进上述代码的反馈或建议(我不喜欢很多 if-else 块)

【问题讨论】:

  • 您是否尝试过检查 $today 以查看修改后包含的内容?
  • 设置你比较像这样$compare = new DateTime(); $compare-&gt;modify('+2 month');
  • 甚至$compare = (new DateTime())-&gt;modify('+2 month');
  • 非常感谢您为我指明了正确的方向......我完全错过了在添加 2 个月后检查 $today 的价值。固定

标签: php date


【解决方案1】:
function compare($compare, $medical, $today){

 if($compare < $medical) { return "success"; }
 if($compare >= $medical && $today <= $medical) { return "warning"; } 

 return "alarm";
}

【讨论】:

  • 非常感谢...该功能确实改进了代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多