2016-07-25 2 views
0

私のecommウェブサイトのプロモーションコード機能のようにしたいと思います。 現在、私は$ currentDateという変数を持っていますが、正しい形式であるかどうかわかりません。mysqlからdatetime値をPHPにエクスポートする方法

$currentDate = date("Y-M-D") 

私はそれをexpiryDateというデータベースの日付と比較したいと思います。私のデータベースでは、promoCode = GSS2016(varchar)、discount = 0.1(2倍、10%割引を表すと仮定)、expiryDate = 2016-07-28(datetimeはYMDにあります。 promocodeが存在するが、私はPHPにそれをエクスポートする方法がわからないんだと

$currentDate = date("Y-M-D"); 

session_start(); 

$conn = mysqli_connect("localhost", "root", "","websiteDb"); 

$promoCodeInput = $_POST['promoCode']; 

$sql = "SELECT * FROM promocodedb WHERE promoCode = '$promoCodeInput'"; 

$codeChecker = mysqli_query($conn, $sql) or die (mysqli_error($conn)); 

if (mysqli_num_rows($codeChecker) > 0) 
{ 
    $fetchDiscount = mysqli_fetch_assoc($codeChecker); 

    $expiry = $fetchDiscount['expiryDate']; 

    if ($expiry > $currentDate) 
    { 
     $discountPercentage = $fetchDiscount['discount']; 
     echo $discountPercentage; 

     $cookie_value = $discountPercentage; 
     setcookie("discount", $cookie_value, time() + (60 * 60)); //discount last for 1 hour 

     header("Location:cart.php?status=promoApplied"); 
    } 
    else 
    { 
     //header("Location:cart.php?status=promoExpired"); 
    } 
} 
else 
{ 
    header("Location:cart.php?status=promoFail"); 
} 
+0

あなたは何をしようとしているのかを詳しく説明する必要があります。投稿したコードはあまり役に立たないようです。割引コードがまだ有効かどうか確認しようとしていますか? –

答えて

0

Y-M-D2016-Jul-25のような文字列を生成し、現在の日付と比較した場合。)私はすでにチェックするクエリを実行しました。確実にそれを別の文字列、あるいはmysqlの日付/時刻の書式設定された文字列(これは2016-07-25)と比較することはできません。数値/日付を比較するとき

文字列比較ルールが正しく動作することはありません:

php > var_dump('2016-Jul-25' > '2016-07-25'); 
bool(true) 
php > var_dump('2016-Jul-25' == '2016-07-25'); 
bool(false) 

をこれら2つのバージョンが同じ日付を表していても、あなたは比較が戻って間違って来る見ることができます。文字列ルールでは、同じ日付のではないです。同様

、注意してください。この1:

php > var_dump('2016-Jul-25' > '2016-Mar-25'); 
bool(false) 

7月3月より年後に来るので、人間の解析基準で真が、文字列比較の基準ではFALSE、J以前Mをよりアルファベットで来るのでしたがって、バージョンはMarバージョンよりも小さいか早くなります。

0

すべてのdatetimeをUNIXのタイムスタンプに転送し、タイムスタンプとして相互に比較することができます。 Unixタイムスタンプは、Unixタイムスタンプに日時を転送するための機能を1月1日1970年

からの秒数である。これは非常に巧妙な機能であり、多くの日時フォーマットを認識することができますstrtotime

です。

見てくださいPHP strtotime

関連する問題