2017-11-21 3 views
0

내 솔루션은 대부분 작동하지만 대부분은 그렇지 않습니다. 신뢰할 수있는 최상의 솔루션은 무엇입니까?PHP가 새로운 날의 첫 번째 루프를 감지합니다.

<?php 

date_default_timezone_set('UTC'); 
$seconds_today = time() - strtotime('today'); 

while (true) { 
    if ($seconds_today > time() - strtotime('today')) { 
     print('First loop of the new day'); 
    } 
    $seconds_today = time() - strtotime('today'); 
    sleep(1); 
} 

?> 
+2

당신이 무엇을 이 코드에서 기대 하시겠습니까? –

+0

달성하고자하는 것에 대해 자세히 설명해 주실 수 있습니까? –

+0

"새로운 날의 첫 번째 루프를 감지하십시오"는 의미는 무엇입니까 –

답변

1

.. 가능하면 내가 크론 같은 것을 사용하는 것입니다,라고하지만, 여기에 생각이 갖는

<?php 

date_default_timezone_set('UTC'); 
$previous_day = 0; 

while (true) { 
    if ($previous_day != strtotime('today')) { 
     print('First loop of the new day'); 
     $previous_day = strtotime('today'); 
    } 
    sleep(1); 
} 

?> 
+0

@ xs0 하하하 - 둘 다 완전히 맞습니다. 저는 제 초가 아니라 새로운 날이 필요하다는 것을 알고 있기에 너무 바보였습니다. 제 질문이 이미 암시 한 바는 ... 감사합니다. 너는 너의 빠르고 친절한 통보를 위해 둘 다! – user8613418

2

관심있는 모든 것이 그날이라면 신경 쓸 필요가 없습니다. 또한 루프 당 두 번 시간을 확인하면 스위치를 놓칠 가능성이 있으므로 정확하게 한 번 확인하는 것이 더 튼튼합니다.

<?php 

date_default_timezone_set('UTC'); 
$lastDay = date("Y-m-d"); 

while (true) { 
    $now = date("Y-m-d"); 
    if ($now !== $lastDay) { 
     $lastDay = $now; 
     print("First loop of the new day"); 
    } 
    sleep(1); 
} 

?> 

내가 PHP의 syntaxe의 확실하지 않다

+0

@DSB 하하하 - 당신은 둘 다 완전히 맞습니다 - 나는 초가 필요하지 않다는 것을 알기에는 너무 바보였습니다. 단지 새로운 날이었습니다. 제 질문이 이미 암시 한 바는 ... 당신의 빠르고 친절한 조언 모두에 감사드립니다! – user8613418

+0

그리고 물론 여기에 설명 된 내용 '또한 루프 당 두 번 시간을 확인하면 전환을 놓칠 가능성이 있으므로 정확하게 한 번 확인하는 것이 더 튼튼합니다.'그 옆에있는 내 솔루션의 주요 문제였습니다. 초의 시간을 사용하여 지나치게 복잡한 일들. 그래서 다시 - 고마워요. – user8613418