PHP在循环中设置一次值

时间:2015-08-31 13:21:25

标签: php loops for-loop time

我有一个PHP脚本,它会检查一周中的每个星期日并显示当天的数据。

用户可以将当天的值更改为“是”或“否”。

我想补充一种可能性,即用户无法在每周四23:59之前改变他们的选择。

我只希望第一个星期天不可编辑。 因为这一切都在一个循环中,显示每个星期日,直到将来的11个星期日。我需要找到一种方法,只在第一个星期天这样做。

$datum_gisteren = new datetime('yesterday');
echo '<tr>';
echo '<td bgcolor="#3c741a" style="color:#FFFFFF;">&nbsp;'.$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>';                        
    }
}   

大部分工作已完成(我相信),但正如您所见。第一个$date_modified语句中的if是“硬编码”(06-09-15)。

我希望这个值成为第一个下一个星期日。但由于这是循环,它每个星期天都会显示11次。

如何设置这个星期天一次?

希望它有意义!!!

1 个答案:

答案 0 :(得分:1)

您可以为其保留其他变量:

$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逻辑从前面分离出来。

感谢。