在我的系统中有一个日历,在日历的顶部有两个按钮,下一个和上一个,这是获得下一个月,一年和上一个月,一年。现在的月份是2015年11月。我想要的是,如果我点击下一步按钮,那么它将转到下一个月2015年12月,如果我点击上一个按钮,那么它将返回到当前月份,即2015年11月。现在发生的是,如果我点击下一个按钮,那么月份是2015年12月,但如果我点击上一个按钮,月份是2015年10月[从当前月份(2015年11月)递减1,但不是从2015年12月递减1]
有办法解决吗?
我唯一的想法是将值从第一个语句(isset($_POST['next)']))
传递到第二个if语句(isset($_POST['previous)']))
。
这是我的PHP代码:
/*increment decrement day month year with different format. check it*/
$CurrentMonthyyyymm = date('Y-m');
$month_year_Current = date('F Y');
$totday = date('t');
$totdayLastMonth= date('t', strtotime("-1 month", strtotime($CurrentMonthyyyymm))); // eg: 31
$totdayNextMonth= date('t', strtotime("+1 month ", strtotime($CurrentMonthyyyymm)));
$month_year_Last = date('F Y', strtotime("-1 month", strtotime($CurrentMonthyyyymm))); // eg: December 2014
$month_year_Next = date('F Y', strtotime("+1 month", strtotime($CurrentMonthyyyymm)));
$LastMonthyyyymm= date('Y-m', strtotime("-1 month", strtotime($CurrentMonthyyyymm))); // eg: 2014-12
$NextMonthyyyymm= date('Y-m', strtotime("+1 month ", strtotime($CurrentMonthyyyymm)));
/****** day month year next previous *****/
if (isset($_POST['next']))
{
$_SESSION['i'] = isset($_SESSION['i']) ? ++$_SESSION['i'] : 1;
$increment1 = $_SESSION['i'];
$totday= date('t', strtotime("+$increment1 month ", strtotime($CurrentMonthyyyymm)));
$month_year_Next = date('F Y', strtotime("+$increment1 month", strtotime($CurrentMonthyyyymm)));
$NextMonthyyyymm= date('Y-m', strtotime("+$increment1 month ", strtotime($CurrentMonthyyyymm)));
}else{
unset($_SESSION['i']);
}
// $NextMonthyyyymm;
if (isset($_POST['previous']))
{
$_SESSION['d'] = isset($_SESSION['d']) ? ++$_SESSION['d'] : 1;
$decrement1 = $_SESSION['d'];
$totday= date('t', strtotime("-$decrement1 month ", strtotime($CurrentMonthyyyymm)));
$month_year_Last = date('F Y', strtotime("-$decrement1 month", strtotime($CurrentMonthyyyymm)));
$LastMonthyyyymm= date('Y-m', strtotime("-$decrement1 month", strtotime($CurrentMonthyyyymm)));
}else{
unset($_SESSION['d']);
}
1条答案
按热度按时间jvlzgdj91#
要解决上一个按钮错误地减少月份的问题,需要修改代码中的逻辑。您可以使用当前月份和年份直接计算上一个月和下一个月,而不是递增和递减会话变量。
以下是PHP代码的更新版本:
在这个更新的代码中,当单击Next按钮时,它会计算下一个月并更新必要的变量。类似地,当单击“上一个”按钮时,它会计算前一个月并相应地更新变量。这种方法避免了对会话变量的需要,并确保根据当前月份和年份正确地递增或递减月份。
请确保用此更新的代码替换现有代码的相关部分。