2015-10-13 114 views
0

突然沒有在代碼中的任何改變,下面部分是一個無限循環中運行(兩年以上效果很不錯):無限循環,同時顯示日期

$date = date("d.m.Y l", strtotime($supplyDate)); 
$end = date("d.m.Y l",strtotime("+1 months")); 

if(!empty($date_dif)) { 
$i = 1; 
// PATCH one day minus 
$date = date("d.m.Y l", strtotime($date)-(86400)); 
while (strtotime($date)<strtotime($end)) { 
    $date = date("d.m.Y l", strtotime($date)+(86400)); 
    $day = date("l", strtotime($date)); 
    if($day == "Saturday" && (intval($isSaturdayOpen) == 0 && intval($date_dif) == 1)){ continue;} 
    if($day == "Sunday" && (intval($isSundayOpen) == 0 && intval($date_dif) == 1)){ continue;} 

    $tab_content .= '<option value="'.strtotime($date).'">'.utf8_encode(strftime('%d.%m.%Y %A',strtotime($date))).'</option>'; 

    $i++; 
    if($i==10){ 
     break; 
    } 
} 
} 
+0

你可以在代碼中添加一些回聲來看看變量的狀態是什麼?如果實例,如果「我永遠不會等於10」 – durbnpoisn

+0

爲什麼你需要從字符串到時間戳的所有這些轉換回來並強制? –

+0

我剛剛在我的服務器上運行了未經編輯的代碼,它運行良好。那麼,我設置爲$ supplyDate ='2015-10-01';並關閉IF條件。但除此之外,我什麼也沒有改變。它回溯到8日星期四,並自行停止。 – durbnpoisn

回答

0

奇怪,但你可以使用一個絕招在你的代碼的末尾:

if((int)$i===10){ 
    break; /* You could also write 'break 1;' here. */ 
} 

以防萬一,如果$i不被認可的類型,你可以像整數轉換,並與整數進行比較。

我在這裏找不到其他問題。