PHP 循环设置一次值
PHP Set a value once in a loop
我有一个 php 脚本,它检查一周中的每个星期日并显示当天的数据。
用户可以将当天的值更改为 "Yes" 或“否”。
我想添加一个可能性,即用户不能在每个星期四之后的星期日之前 23:59 更改他们的选择。
我只希望第一个星期天不可编辑。
因为这一切都在一个循环中,显示每个星期日,直到未来的 11 个星期日。我需要找到一种方法只在第一个星期天执行此操作。
$datum_gisteren = new datetime('yesterday');
echo '<tr>';
echo '<td bgcolor="#3c741a" style="color:#FFFFFF;"> '.$current_user->first_name.''.' '.''.$current_user->last_name.'</td>
<form action="" method="post">';
for ($i=0; $i<=11; $i++){
$date_modified = $datum_gisteren->modify('next sunday')->format('d-m-y');
$datum = get_the_author_meta( $date_modified, $current_user->ID );
$time = '23:59';
if(date('l') === 'Thursday' && date('H:i') >= $time && $date_modified === '06-09-15') {
echo '<td>
<select class="form-field" id="'.$date_modified.'" name="'.$date_modified.'">
'.(($datum == '1') ? '<option value="1" selected disabled="disabled">Nee</option>' : '').'
'.(($datum == '2') ? '<option value="2" selected disabled="disabled">Ja</option>' : '').'
</select></td>';
}else{
echo '<td>
<select class="form-field" id="'.$date_modified.'" name="'.$date_modified.'">
<option value="1" '.(($datum == '1') ? 'selected' : '').' >Nee</option>
<option value="2" '.(($datum == '2') ? 'selected' : '').' >Ja</option>
</select></td>';
}
}
大部分工作已经完成(我相信),但如您所见。第一个 if
语句中的 $date_modified
是 "hardcoded" (06-09-15)。
我希望这个值是下周日的第一个。但由于这是在循环中,所以每个星期天都会显示 11 次。
这个星期天怎么设置一次?
希望它有意义!!!
您可以为其保留额外的变量:
$j = 0;
for ($i=0; $i<=11; $i++){
$date_modified = $datum_gisteren->modify('next sunday')->format('d-m-y');
$datum = get_the_author_meta( $date_modified, $current_user->ID );
$time = '23:59';
if(date('l') === 'Thursday' && date('H:i') >= $time && $j === 0) {
$j++;
echo '<td>
<select class="form-field" id="'.$date_modified.'" name="'.$date_modified.'">
'.(($datum == '1') ? '<option value="1" selected disabled="disabled">Nee</option>' : '').'
'.(($datum == '2') ? '<option value="2" selected disabled="disabled">Ja</option>' : '').'
</select></td>';
}else{
echo '<td>
<select class="form-field" id="'.$date_modified.'" name="'.$date_modified.'">
<option value="1" '.(($datum == '1') ? 'selected' : '').' >Nee</option>
<option value="2" '.(($datum == '2') ? 'selected' : '').' >Ja</option>
</select></td>';
}
}
但最好将 php 逻辑与前端分开。
谢谢。
我有一个 php 脚本,它检查一周中的每个星期日并显示当天的数据。
用户可以将当天的值更改为 "Yes" 或“否”。
我想添加一个可能性,即用户不能在每个星期四之后的星期日之前 23:59 更改他们的选择。
我只希望第一个星期天不可编辑。 因为这一切都在一个循环中,显示每个星期日,直到未来的 11 个星期日。我需要找到一种方法只在第一个星期天执行此操作。
$datum_gisteren = new datetime('yesterday');
echo '<tr>';
echo '<td bgcolor="#3c741a" style="color:#FFFFFF;"> '.$current_user->first_name.''.' '.''.$current_user->last_name.'</td>
<form action="" method="post">';
for ($i=0; $i<=11; $i++){
$date_modified = $datum_gisteren->modify('next sunday')->format('d-m-y');
$datum = get_the_author_meta( $date_modified, $current_user->ID );
$time = '23:59';
if(date('l') === 'Thursday' && date('H:i') >= $time && $date_modified === '06-09-15') {
echo '<td>
<select class="form-field" id="'.$date_modified.'" name="'.$date_modified.'">
'.(($datum == '1') ? '<option value="1" selected disabled="disabled">Nee</option>' : '').'
'.(($datum == '2') ? '<option value="2" selected disabled="disabled">Ja</option>' : '').'
</select></td>';
}else{
echo '<td>
<select class="form-field" id="'.$date_modified.'" name="'.$date_modified.'">
<option value="1" '.(($datum == '1') ? 'selected' : '').' >Nee</option>
<option value="2" '.(($datum == '2') ? 'selected' : '').' >Ja</option>
</select></td>';
}
}
大部分工作已经完成(我相信),但如您所见。第一个 if
语句中的 $date_modified
是 "hardcoded" (06-09-15)。
我希望这个值是下周日的第一个。但由于这是在循环中,所以每个星期天都会显示 11 次。
这个星期天怎么设置一次?
希望它有意义!!!
您可以为其保留额外的变量:
$j = 0;
for ($i=0; $i<=11; $i++){
$date_modified = $datum_gisteren->modify('next sunday')->format('d-m-y');
$datum = get_the_author_meta( $date_modified, $current_user->ID );
$time = '23:59';
if(date('l') === 'Thursday' && date('H:i') >= $time && $j === 0) {
$j++;
echo '<td>
<select class="form-field" id="'.$date_modified.'" name="'.$date_modified.'">
'.(($datum == '1') ? '<option value="1" selected disabled="disabled">Nee</option>' : '').'
'.(($datum == '2') ? '<option value="2" selected disabled="disabled">Ja</option>' : '').'
</select></td>';
}else{
echo '<td>
<select class="form-field" id="'.$date_modified.'" name="'.$date_modified.'">
<option value="1" '.(($datum == '1') ? 'selected' : '').' >Nee</option>
<option value="2" '.(($datum == '2') ? 'selected' : '').' >Ja</option>
</select></td>';
}
}
但最好将 php 逻辑与前端分开。
谢谢。