我遇到了代码中的情况。变量$end_date
在while循环中迭代,显示五章的结束日期。现在在这个变量的基础上,我必须显示一个警告框。我的问题是当找到最后一章的结束日期时弹出警告框,这是无效的,因为对于其他四章,结束日期已延长。如何仅为最后一章留下结束日期,并且不应匹配警报框条件。我已经尝试了很多,但不能为此做出逻辑。帮助或建议将不胜感激。
if((strtotime($today_date) >= strtotime($end_date) || ( $pass_count == 0 && $status_request != 2 && $status_request != 0 ) ) )
{
echo ("<SCRIPT LANGUAGE='JavaScript'>
mess1='Your exam validity date has been expired. Click OK to request for extending your Quiz validity or you can ignore by clicking Cancel.'
x = confirm(mess1);
if (x == true)
{
window.location = 'validity_request_mail.php?userid=$userid ';
}
</SCRIPT>");
}
答案 0 :(得分:0)
我们可能会引入一个名为$last_date
的新变量,用于捕获所有章节的“最大”结束日期。
似乎问题是在while()
循环后,$end_date
已设置,它应该是最后一个日期。但是,最后一次(第5次迭代)在其他章节的其他$end_date
之前有$end_date
,因此显示confirm()
框不正确(因为有些章节未过期尚未)。
所以这应该解决它:
while (...) {
...
}
...
// snippet in OP's post
要:
$last_date = '';
while (...) {
...
if ( strtotime($end_date) > strtotime($last_date) ) {
$last_date = $end_date;
}
}
...
$end_date = $last_date; // continue with snippet in OP's post