2014-12-01 91 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) 

而且將永遠是正確的。

你想

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

注意改變的數學

+0

缺少一個')'在最後的代碼pi ece:'($ created_at>(time() - $ sixweek)' - >'($ created_at>(time() - $ sixweek))''。編輯:他現在替換它:P – briosheje 2014-12-01 17:09:04

+0

試過這仍然顯示消息之前6周 – Brent 2014-12-01 17:10:42

+0

哦交換圓周工作很好謝謝 – Brent 2014-12-01 17:13:01

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