2010-07-21 4 views
10

이벤트를 보유하고있는 일주일 캘린더가 있으며 그 사용자가 지난 일 동안 이벤트를 추가하지 못하도록하고 싶습니다. 따라서 저는 다음과 같은 함수를 사용하려고합니다 :주어진 날짜가 지난 것인지 확인하십시오.

if(strtotime($this->day) < time()){ // date format is YYYY-MM-DD 
// date is past 
}else{ 
// date is not past 
} 

오늘 날짜를 과거 날짜로 간주하는 것을 제외하고는 잘 작동하는 것 같습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

10

타임 스탬프에는 날짜 만 포함되지 않지만 항상 현재의 두 번째 날짜까지입니다. strtotime($this->day)0:00에 오늘 날짜를 반환 할 것입니다. 현재와 비교하면, 예를 들어 11:12입니다.

strtotime("$this->day 12:59:59pm"); ($this->day의 형식이 허용하는 경우)을 사용하거나 내일의 타임 스탬프를 사용할 수 있습니다.

+1

다른 방법으로는,'한 strtotime ($ this-> 일)을 사용하여 <시간() - 24 * 60 * 60'. – user11977

+0

고마워요! 이 방법은 잘 작동합니다! – Luciano

11

간단한 ->

if(strtotime($this->day) < strtotime(date('Y-m-d'))) 
{ 
    ... 
} 
else 
{ 
    ... 
} 
+0

감사합니다. 오늘 날짜() 함수를 설정하는 것을 고려하지 않았습니다! – Luciano

+0

strtotime 함수 ... 오타가 발생했습니다 ... 죄송합니다 –

+0

초를 고려하여 H : i : s'strtotime (날짜 ('Y-m-d H : i : s')) – justinl

0
if(strtotime($this->day) < mktime(0, 0, 0)){ 
    // date is past 
} else { 
    // date is not past 
} 
관련 문제