2015-09-01 17 views
0

我有一個方案,管理員在有效期結束日期的網站上註冊用戶詳細信息。在登錄期間,腳本應該驗證它是否超過了結束日期。根據用戶訂閱有效日期返回false?

我可以通過使用此代碼嘗試,

$val_date = date("Y/m/d"); 

$date1 = new DateTime($val_date); 
$date2 = new DateTime("2009/06/26"); 
$interval = $date1->diff($date2); 

但是,我應該如何處理負面的日期?

我的意思是,如果情況是這樣,

$date1 = new DateTime("2009/03/24"); 
$date2 = new DateTime($val_date); 
$interval = $date1->diff($date2); 

哪個日期我應該有當前的日期? $date1$date2

+2

您可以使用strtotime將兩個日期轉換爲時間戳,然後您可以使用if($ current_date_timestamp <$ end_date_timestamp){//允許登錄} else {//不允許登錄}的條件來檢查正常情況。我希望它能幫助你。 –

+0

是的@ManikandanS在這個方法中是正確的。 –

+0

其實你不需要轉換爲時間戳 - 只需檢查'$ date1 <$ date2'的條件和取決於其餘的將取決於場景... – Moby04

回答

0

你甚至都不需要今天設置爲日期比較之前:

$val_date = date("Y/m/d"); 

只要做到: $今天=的strtotime(日期( 「Y/M/d」); $ EXP_DATE =的strtotime(日期(「​​2009/06/26」));

if($today<$exp_date){ 
    echo 'Login has not expired yet'; 
}else{ 
    echo 'Login has expired and you cannot enter anymore'; 
} 

的strtotime轉換的日期(接受的格式非常寬的選項)以一個Unix時間戳Unix時間戳被計數爲1月以來的秒數01 1970.(UTC) 這意味着例如像我wri te unix時間戳將是'1441119516'。 然後運行任何比較或計算,例如添加或刪除天/小時,將很容易。例如,如果您需要添加一小時,您只需要執行以下操作:

$today+3600; 

即將60 * 60秒添加到上一個時間戳。