这是我的代码,我根据当前日期计算截止日期。 如果用户在2月2日转移,而不是根据当前日期,将于6月1日显示。
$current_date=date('Y-m-d');
$ref_date=date('Y-m-d', strtotime($ref_date));
if($current_date>$ref_date){
$ref_month=date('m', strtotime($ref_date));
if($ref_month=="12"){
$ref_new_year = strtotime("1 year", strtotime($ref_date));
$due_year=date("Y", $ref_new_year);
}else{
$due_year=date('Y', strtotime($ref_date));
}
$due_day=date('d', strtotime($ref_date));
$due_month=date('m', strtotime($ref_date));
$check_year=$due_year."-".$due_month."-".$due_day;
$shift_month= date("m", strtotime($ref_date));
$current_month=date("m", strtotime($current_date));
$my_month1=$current_month-$shift_month;
$my_month=$my_month1+1;
$your_date1 = strtotime("$my_month month", strtotime($ref_date));
$due_month1= date("m", $your_date1);
$due_month121= date("M", $your_date1);
$due_day1=date('d', strtotime($check_year));
$check_month=$due_year."-".$due_month1."-".$due_day1;
$ref_date12 = strtotime("-1 day", strtotime($check_month));
$due_date11= date("d", $ref_date12);
$ref_final_date=$due_year."-".$due_month1."-".$due_date11;
$ref_date11=date('d', strtotime($ref_final_date));
$current_date=date("d", strtotime($current_date));
if($current_date<$ref_date11){
$your_date1321 = strtotime("-1 month", strtotime($ref_final_date));
$due_month22= date("M", $your_date1321);
echo $final_date=$due_date11."-".$due_month22."-".$due_year;
}else{
echo $final_date=$due_date11."-".$due_month121."-".$due_year;
}
}else{
//Year
$ref_month=date('m', strtotime($ref_date));
if($ref_month=="12"){
$ref_new_year = strtotime("1 year", strtotime($ref_date));
$due_year=date("Y", $ref_new_year);
}else{
$due_year=date('Y', strtotime($ref_date));
}
$due_day=date('d', strtotime($ref_date));
$due_month=date('m', strtotime($ref_date));
$check_year=$due_year."-".$due_month."-".$due_day;
//Month
$ref_month = strtotime("1 month", strtotime($check_year));
$due_month1= date("m", $ref_month);
$due_month1321= date("M", $ref_month);
$due_day1=date('d', strtotime($check_year));
$check_month=$due_year."-".$due_month1."-".$due_day1;
//Date
$ref_date12 = strtotime("-1 day", strtotime($check_month));
$due_date11= date("d", $ref_date12);
if($current_date < $ref_date){
echo "Tenant not shifted yet.";
}else{
echo $final_date=$due_date11."-".$due_month1321."-".$due_year;
}
}
在此代码中,我面临的问题是,如果用户轮班日期是3月1日,则应付款将于6月31日到期,但6月仅为30天。请帮助我。
答案 0 :(得分:0)
你正在使用它很有趣的日期函数,因为php确实认为没有31月6日
如果您对代码发表评论,我们可以提供进一步的帮助
如果你想长途跋涉,你可以在第4,6等月(30天月)做-1天
答案 1 :(得分:0)
使用"node_modules/bootstrap/dist/css/bootstrap.min.css"
功能根据当前日期/时间构建未来日期。调用函数时,只需在days参数中添加30即可。
请注意,我正在使用mktime()
,因为没有intval()
格式字符串,这些日期部分没有前导0,这会使某些版本的PHP混淆为“整性”。如果您关心的只是日期而非时间,请随意对date()
之类的值进行硬编码,而不是使用1
调用来获取小时/分钟/秒。
date()