2011-01-26 5 views
1

변경 시도는 특정 날짜를 기준으로합니다. 이 작품처럼 뭔가 :PHP 날짜를 기준으로 포함

if (date('m/d/Y') < date('m/d/Y', strtotime("01/10/2011"))) { 
    //Display something 
} 
else if (date ('m/d/Y') >= date('m/d/Y', strtotime("01/10/2011")) && date ('m/d/Y') <= date("m/d/Y', strtotime("05/10/2011"))   
    // Display something else 
else { 
    //Display something different 
} 

정확하게 strtotime 기능을 이해하고 있다면, 나는 그것이 작동 할 것이라고 생각합니다. 그러나 나는 그것을 정확하게 이해하고 있는지 잘 모르겠습니다. 알려줘!

답변

3

date 당신이 유용한 결과 2011-02-23처럼 다른 문자열을 비교할 수 없습니다 2011-01-26 같은 문자열을 반환합니다. 동일한 매개 변수와 함께 또 다시 같은 기능을 사용하지 않는,이 같은 시나리오에서

if (time() /* (now) */ < strtotime('2011-01-26')) ... 
0

문자열 대신 (date가 반환하는) 타임 스탬프 (무엇을 strtotimetime가 반환하는지)를 비교해야합니다. 이처럼

:

if (time() < strtotime('01/10/2011')) { 
    //Display something 
} 
else if (time() >= strtotime('01/10/2011') && time() <= strtotime('05/10/2011')) 
    // Display something else 
else { 
    //Display something different 
} 

편집 : 당신이 그들을 구문 분석 PHP를 필요로하지 않는 경우도, 작은 따옴표를 사용합니다. 그들은 약간 더 빠르게 작동합니다.

+1

: 당신은 strtotime 또는 time에 의해 생산으로 타임 스탬프를 비교해야합니다. 대신 변수에 값을 저장하고 사용하십시오. 하나의 이유는 처리가 증가했기 때문이며, 여기에 관련된 또 다른 이유는'time()'이 3 가지 함수 호출 모두에서 동일하지 않다는 것입니다. –

1

date은 문자열을 반환합니다.이 함수의 반환 값을 비교할 때 문자열을 비교하고 있습니다. 'm/d/Y'형식의 날짜 비교는 날짜를 예상 한 것과 비교하지 않습니다 (단, standard format을 사용하는 경우).

내가 직접 타임 스탬프를 비교 제안 :

if (time() < strtotime('2011-01-01')) { /* include something */ } 
관련 문제