2014-12-01 1 views
0

사용자에게 메시지를 표시해야하는 경우 사용자가 사이트에 6 개월 이상 있는지 확인하려고합니다.날짜 확인 합격 시간

나는이 기능을 사용할 수 없으며, 날짜를 오늘으로 이동해도 6 주를 지났다고 생각합니다.

현재 내 코드.

  $created_at = "2014-12-01 16:58:23"; 

      $sixweek = 604800 * 6; 

      if(strtotime($created_at) < time() + ($sixweek)) 
      { 
       $data['needsnewimage'] = 1; 
       die('6 Weeks has passed '); 

      }else{ 
       $data['needsnewimage'] = 0; 
       die('6 Weeks has not passed'); 
      } 

아이디어가 있으십니까?

답변

2

그건 효과가 없습니다. 이것을 고려하십시오 : 누군가가 오늘 귀하의 사이트에 가입하는 :

$created_at = '2014-12-01 08:00:00'; // "today" 

if ($created_at < $today + $sixweek) ... 

if ($today < $today + $sixweek) 
if (0 < $sixweek) 

가되어 항상 true가됩니다.

당신은

if ($created_at > (time() - $sixweek)) 
       ^---------^ 

참고 변경된 수학을 원하는

+0

을')' 마지막 코드 파이에 ece :'($ created_at> (time() - $ sixweek)'->'($ created_at> (time() - $ sixweek))'로 설정합니다. 편집 : 그는 지금 그것을 대체했습니다 : P – briosheje

+0

6 주 전에 메시지를 보여줍니다 여전히 이것을 시도하십시오 – Brent

+0

오 교환 된 고마워 덕분에 – Brent

1
날짜 시간이 간단하고, 뭔가 같은 것

: - 누락

$created_at = new \DateTime("2014-12-01 16:58:23"); 
$sixWeeks = new \DateInterval('P6W'); 
if($created_at->add($sixWeeks) < new \DateTime()){ 
    echo "Six weeks has passed!\n"; 
} else echo "Not yet!\n"; 

See it working
Reference