鍍金池/ 問答/PHP  數(shù)據(jù)庫  HTML/ YYYYMMDD 轉(zhuǎn)時間戳,如何正確的比對時間?

YYYYMMDD 轉(zhuǎn)時間戳,如何正確的比對時間?

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

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

補充:
我發(fā)現(xiàn)即使「結(jié)束時間」還沒有到,他還是報錯耶?

  "SELECT * FROM `discount`
      WHERE
        `code` = '{$cart_code}'
      AND
        `end` <= '".time()."' "
回答
編輯回答
硬扛

強烈推薦時間戳,因為時間戳是數(shù)字類型的存儲本身會比字符串就快,而且數(shù)字的比對也比字符串容易
你可以用strtotime將字符串時間類型轉(zhuǎn)成時間戳 然后比較他們的大小
如果當前時間小于開始時間或者當前時間大于結(jié)束時間,那么優(yōu)惠券不可用
如果當前時間在開始時間和結(jié)束時間之間,就是可用

2017年3月12日 05:01
編輯回答
兔寶寶

直接大小比較是可以的啊,字符串的大小比較是比較字符的ASCII碼,你這種格式完全可以采用啊;
"2028-01-02" > "2018-01-02"
true
"2018-01-02" > "2018-02-02"
false
"2018-01-02" > "2018-01-03"
false
"2018-01-04" > "2018-01-03"
true

2017年6月30日 14:57
編輯回答
刮刮樂

直接比較就可以的

2018年5月13日 21:44
編輯回答
哚蕾咪

轉(zhuǎn)成時間戳

sql:select * from xx where start >= time and end <= time;
2017年7月21日 02:50