下面的代码是我的需要!,我得到的输出为“ 完成”和“ 待处理”。我应该如何获得“达到极限”的输出。
需要的条件
如果$current
日期大于$next_due_on_date
,则应显示
输出为“待处理”。
在这种情况下,我需要通知,例如“ 30天到期”,即$next_due_on_date
达到上限之前。
如果$current
日期小于$next_due_on_date
,则应显示输出为“已完成”。
请帮助我解决逻辑。 谢谢!
$current_date = date('Y-m-d G:i:s'); //Current date
$next_due_on_date = '24/10/2018'; //$next_due_on
$next_due_on_date = str_replace('/', '-', $next_due_on_date); //Replacing the format with str_replace
$highlight_date = date("Y-m-d", strtotime("$next_due_on_date 0 years 0 months -30 days")); //$highlight_date is to subtract the next_due_on_date with -30 days
if($current_date <= $highlight_date){
$output = "Completed";
}elseif($current_date > $highlight_date){
$output = "Pending";
}else{
$output = "Reached the limit"
}
print_r($output);
答案 0 :(得分:0)
@Arun
我没有正确理解您的要求,但据我了解,您可以尝试这样。
<?php
function s2t($value){
return strtotime($value);
}
$date1 =
$date2 = date('Y-m-d',strtotime('+30days'));
$date3 = date('Y-m-d',strtotime('-30days'));
if( s2t($date1) > s2t($date2) ){
echo "30+ Days left";
}else{
echo "30 Days Left";
}
答案 1 :(得分:0)
阿伦
我注意到您的代码中有几件事。这里的主要问题是您说过要达到限制,但是您的IF
不允许这种情况发生。
让我解释一下原因:首先比较$current_date <= $highlight_date
,然后比较$current_date > $highlight_date
。由于 current_date 只能是<=或> highlight_date ,因此最后一个else
将永远不会运行。
因此,您需要重组IF,以实现目标。
我不确定我是否很好地理解了你的观点,但是如果我愿意,你想:
$current_date <= ($next_due_on_date - 30 days))
$current_date <= $next_due_on_date
所以会是这样(我试图尽可能少地更改您的代码):
$current_date = date('Y-m-d G:i:s'); //Current date
$next_due_on_date = '24/10/2018'; //$next_due_on
$next_due_on_date = str_replace('/', '-', $next_due_on_date); //Replacing the format with str_replace
$highlight_date = date("Y-m-d", strtotime("$next_due_on_date 0 years 0 months -30 days")); //$highlight_date is to subtract the next_due_on_date with -30 days
if($current_date <= $highlight_date){
$output = "Completed";
}elseif($current_date <= $next_due_on_date){
$output = "Pending";
}else{
$output = "Reached the limit";
}
print_r($output);
是吗?
答案 2 :(得分:0)
下面的代码运行良好。请检查,它可能用于您要比较两个日期的任何概念。
$current_date = date('Y-m-d G:i:s');
$next_due_on_date = '27/09/2018';
$next_due_on_date = str_replace('/', '-', $next_due_on_date);
$highlight_lesser_thirdty_date = date("Y-m-d", strtotime("$next_due_on_date 0 years 0 months -30 days"));
$highlight_lesser_thirdtyone_date = date("Y-m-d", strtotime("$next_due_on_date 0 years 1 months -31 days"));
if(($current_date <= $highlight_lesser_thirdtyone_date ) && ($current_date <= $highlight_lesser_thirdty_date)) {
$status = "Completed";
}elseif(($current_date < $highlight_lesser_thirdtyone_date) && ($current_date > $highlight_lesser_thirdty_date)){
$status = "Calibration to be conducted";
}elseif($current_date < $next_due_on_date){
$status = "Pending";
}
print_r($calibration_status);