2013-05-03 1 views
0

나는 이미 1 일 문자로 모든 일을 substr하지만 목요일에만 두 개의 편지를 쓰고 싶습니다. 지금 내 루프는 주말을 건너 뛰고 오늘 날짜로부터 2 주 동안 올바르게 작동합니다.php for 루프를 사용하여 목요일을 두 자리 약어로 대체 하시겠습니까?

$lastmonday=strtotime("-".(date("N")-1)." days"); 
$end=strtotime("+14 days", $lastmonday); 
$datestr = ""; 

for($i = 1; $i < 14; $i++) 
    { 
    $curr = strtotime("+".$i." days"); 
    $weekday = date("N", $curr); 

    if ($weekday > 5) continue; 

    $datestr .= "sum(case when DATEDIFF(dd,cast(GETDATE() as date),cast(a.follow_up as date))='$i' then 1 else 0 end) 
     '" . substr(date('D', $curr), 0, 1).'<br>' . date('n/j', $curr) . "',"; 
    } 

문제는 월요일부터 금요일까지 모두 1에서 substr입니다. substr을 아직 사용하지 않아서 매우 유용하다는 것을 알고 있습니다. 덧붙여서, 나는 수요일과 substr 목요일에 루프를 두 글자로 멈추고 금요일에 한 글자로 되돌아 갈 수있는 방법을 모르겠다.

나는 루프를 깰 것이고 제어 구조를 "계속 사용"할 것인가? 나는 $ weekday 변수에 대해하는 것처럼?

+1

루프에 빠른 if 문을 추가하기 만하면됩니다. '만약 그 날이 목요일이라면, 두 글자까지 줄 것입니다. ' 목요일에만하고 계속 움직이기 때문에 else 문이나 다른 것이 필요 없을 것입니다. – ntgCleaner

답변

3

잡을 문자를 확인하려면 하루를 테스트하십시오.

substr(date('D', $curr), 0, ($weekday == 4 ? 2 : 1)) 
+0

저는 훌륭한 아이디어를주는 삼항 연산자를 사용하지 않을 것이라고 생각합니다. 그것은 비록 작동하지 않았다. –

+0

편집 :'()'로 묶어야 할 수도 있습니다. 또한 $ weekday의 값을 알지 못합니다. int가 아니 어서'==='비교가 실패했을 수 있습니다. 나는 그것을 풀었다. – Xeoncross

+0

그 시간에 일했고, 평등하고 동일하지 않아야했습니다. 도와 주셔서 감사합니다 제온 크로스. –

관련 문제