2016-07-25 2 views
0

내 ecommerce 웹 사이트의 프로모션 코드 기능을 사용하고 싶습니다. 현재 올바른 형식인지 확실하지 않은 $ currentDate라는 변수가 있습니다.mysql에서 datetime 값을 PHP로 내보내는 방법

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

내 데이터베이스에서 만료일이라는 날짜와 비교하고 싶습니다. 내 데이터베이스에서 promoCode = GSS2016 (varchar), discount = 0.1 (double, 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) 

두 버전이 동일한 날짜를 나타내고 있지만, 당신은 비교가 다시 잘못 와서 볼 수 있습니다. 문자열 규칙에 따라 그들은 이 아니며 같은 날짜입니다. 뿐만 아니라

주의이 하나

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

7 월 월보다 년 후에 오기 때문에, 인간의 구문 분석 기준으로 사실,하지만 문자열 비교 기준으로 FALSE, J 이전 M보다 알파벳에서 오기 때문에 따라서 버전은 Mar 버전보다 작거나 빠릅니다.

0

유닉스 타임 스탬프로 모든 datetime을 전송하고 서로 타임 스탬프로 비교할 수 있습니다. 유닉스 타임 스탬프는

1월 1일 1970 년부터 유닉스 타임 스탬프로 날짜를 transfering하는 기능을 초 단위입니다 이것은 아주 똑똑 기능과 많은 날짜 형식을 인식 할 수 strtotime

입니다.

찾아보기 PHP strtotime

관련 문제