2016-06-11 16 views
1

日時の比較に関するいくつかの場所を読んでいますが、どうやってやるのか分かりません。作成日と日時の比較

私はメンバーシップデータベースを構築しており、ユーザーがアカウントを登録するとSQLに日付時刻を挿入し、そのメンバーシップは過去1年間しかあ​​りません。 したがって、ユーザーは登録されたユーザーから1年間のページにアクセスできます。

読んだときにこれが見つかりましたが、ユーザーがまだ登録されているユーザーからのアクセス権を持っているかどうかを確認する方法がわかりません。 (365日)

$today = date("Y-m-d H:i:s"); 
$expire = $isCreated; //from db 

$today_time = strtotime($today); 
$isCreated_time = strtotime($isCreated); 

if ($isCreated_time < $today_time) { 
/* has access*/ 
} else { 
/* no access */ 
} 

ありがとうございました。

+0

私は本当に問題を理解していません – Strawberry

答えて

2

必要なものは、作成日と今日の日付の違いを見つけて、その差異がメンバーシップにアクセスするために365日を超えないようにすることです。

これはPHPで2つの日付の間の日数を見つけるための機能です:

$now = time(); 
$your_date = strtotime($isCreated); 
$datediff = $now - $your_date; 
echo floor($datediff/(60*60*24)); 

だから、関数の内部で上記作ることはこのようになります。

function howLong($created) { 
    $now = time(); // or your date as well 
    $your_date = strtotime($created); 
    $datediff = $now - $your_date; 
    return floor($datediff/(60*60*24)); 
} 

今、あなたは確認することができます。

if (howLong($isCreated) > 365) 
    echo "Membership Over"; 
else 
    echo "Membership Active"; 
1

このコードは、$isCreatedが実際のレジストラよりも1年多く。例えば、

私は12-06-2016に今日登録します。$expireは、12-06-2017として保存する必要があります。

$ expireが今日の日付よりも高いかどうかを確認することができます。これは正確に1年後になるはずです。

+0

さて、どのようにユーザーを助けようとしていますか? –