2011-10-26 4 views
0

として日付を読んでいない:PHPは、私は私が/見つけたと思うことができるすべてのコンボを試してみましたし、関係なく、私は何をすべきか、私のcodetは、アカウントがロックアウトされていない場合でも、メッセージをエコー表示しない<=現在の日付に正しく

<?php 
    $infosql = "SELECT * FROM premiersounds_users WHERE customer_id = $id"; 
    $inforesult = mysql_query($infosql) or die(mysql_error()); 
    $info = mysql_fetch_array($inforesult); 

    //Get current date from server 
    $format="%m/%d/%y"; 
    $c_date=strftime($format); 
    //set sessions 
    $_SESSION['current_date'] = $c_date; 
    //The date in the database is 10/31/11 
    $_SESSION['lockout_date'] = $l_date; 

    //Check is Current date = lockout date 

    if ($c_date <= $l_date) { 
     header("location:documnet_editors/edit_weddingplanner.php?id=$id"); 
    } 

    else { 
     echo 'Whoops! Were sorry your account has been locked to edits 
     because your event is less than 48 hours from now or your event has passed. 
    To make changes to your event please contact your DJ.'; 
    } 

?> 

<?php 
    //Destroy Session for Lockout Date to prevent bypasses 
    unset($_SESSION['lockout_date']); 
?> 
+2

?あなたのサンプルにはありません。 –

+0

真剣に、どうしてあなたは質問に入れないのですか –

+0

コードを投稿してください –

答えて

0

$ l_dateに値が設定されていて、それがMM/DD/YYとして保存されていると思われる場合は、PHPのstrtotimeを使用して、

if(strtotime($db_date) >= time()) 
{ 
    // do something 
} 
0

より正確な比較のために日付をunixtimeに変換してください。あなたのコードにこの機能を追加します。

function unix_time($date){ 
    $unix_date = str_replace("-","/",$date); 
    $unix_date = str_replace(".","/",$unix_date); 
    $unix_date = str_replace(" pm","",$unix_date); 
    $unix_date = str_replace(" am","",$unix_date); 
    $time = strtotime($unix_date); 
    return $time; 
} 

その後、UNIXに日付を変換:

$l_date = unix_time($_SESSION['lockout_date']); 
$c_date = unix_time($_SESSION['current_date']); 

か、また、データベースから直接日付を取得することができます。

$l_date = unix_time($info['date_in_database']); 

は日付を比較Unixフォーマットで:

if ($c_date = $l_date) { 
    // your code here 
} 

これはうまくいくはずです。

+1

彼はすでに彼の日付が "10/31/11"の形式で保存されていると述べています。これはstrtotimeによって米国の時刻型として解釈され、それに応じて月と日を解析します。第2に、$ c_dateは現在の時刻なので、処理のオーバーヘッドを節約し、組み込みのtime()関数を使用しないでください。 – Josh

0

私の代わりにフォーマットされた日付のタイムスタンプを比較することをお勧め: `$のl_date`が定義されている

<?php 
$date_a = new DateTime(); 
$date_b = new DateTime('2000-10-20 00:10:20'); 
if ($date_a->getTimestamp() > $date_b->getTimestamp()) { 
    echo 1; 
} else { 
    echo 0; 
} 
関連する問題

 関連する問題