YYYYMMDD 轉時間戳,如何正確的比對時間?

我有設定兩個欄位
一個是 start 一個是 end
格式是用 jquery 的 datepicker
所以會是 2018-01-01 格式
只是現在我要做一個比對

我是用一個 電商優惠券 的概念
所以要使用時輸入優惠碼
因此檢查優惠碼的開始時間結束時間跟今天是否吻合
如果今天的時間已經低於開始時間,那就不可用,表示優惠碼失效
假設今天的時間是高於開始時間,且低於結束時間,那就可以使用
只是我送入數據庫的時候會是字串 ( 2018-01-01)
這樣如果我要做到以上的比對
我應該把它轉成時間戳好,還是字串日期的做法最好?
我想到如果轉成時間戳,我要怎麼比對?
如果是轉成日期,假設今天是 2018-07-25,但是到期日是 2018-07-26,還可以用,那我要怎麼往上往下比對?不是數字所以沒辦法用大於小於

補充:
我發現即使「結束時間」還沒有到,他還是報錯耶?

  "SELECT * FROM `discount`
      WHERE
        `code` = '{$cart_code}'
      AND
        `end` <= '".time()."' "


凤凰求蛊
浏览 567回答 2
2回答

狐的传说

强烈推荐时间戳,因为时间戳是数字类型的存储本身会比字符串就快,而且数字的比对也比字符串容易你可以用strtotime将字符串时间类型转成时间戳 然后比较他们的大小&nbsp;如果当前时间小于开始时间或者当前时间大于结束时间,那么优惠券不可用如果当前时间在开始时间和结束时间之间,就是可用

慕标5832272

转成时间戳sql:select&nbsp;*&nbsp;from&nbsp;xx&nbsp;where&nbsp;start&nbsp;>=&nbsp;time&nbsp;and&nbsp;end&nbsp;<=&nbsp;time;
打开App,查看更多内容
随时随地看视频慕课网APP