我正在做一個專案,我必須將醫療證明的到期日期與當前日期進行比較。如果到期日期距當前日期超過兩個月,我應該在用戶頁面中設定一個綠色圖示;如果距離到期日期不到兩個月,我會設定一個黃色圖示,否則,如果到期日期已過,我會顯示一個紅色圖示。
為了執行上述操作,我撰寫了以下代碼:
$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 塊)
uj5u.com熱心網友回復:
function compare($compare, $medical, $today){
if($compare < $medical) { return "success"; }
if($compare >= $medical && $today <= $medical) { return "warning"; }
return "alarm";
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/362966.html
