php
  • mysql
  • codeigniter
  • 2017-04-11 31 views 1 likes 
    1

    具體日期我試圖從指定的日期基於在笨

    $yesterday = date('Y-m-d',strtotime("-1 days")); 
    $this->db->get_where('tablename', array('postid' => $dailystat['postid'], 'timestamp >=' => $yesterday)); 
    

    選擇一個記錄,但我沒有得到即使有表項的任何記錄選擇記錄。我也想確保查詢選擇在指定日期創建的唯一記錄。

    任何幫助將不勝感激..

    +0

    DB中的'timestamp'列格式是什麼? 146765565或Y-m-d? –

    +0

    已經嘗試過,但它不適合我.. –

    +0

    @ m-eskandari它的Y-m-d,這就是爲什麼我使用Y-m-d作爲昨日約會 –

    回答

    0
    $yesterday = date('Y-m-d',strtotime("-1 days")); 
    $this->db->get_where('tablename', array('postid' => $dailystat['postid'], 'timestamp >=' => $yesterday, 'timestamp <' => date('Y-m-d'))); 
    
    +0

    這樣做的伎倆我猜..讓我再試一次.. –

    0

    如果您共享您的表模式和樣本數據,我可以給你正確的答案。我仍然可以猜測你正在使用時間戳來比較日期字符串。 代碼$yesterday = date('Y-m-d',strtotime("-1 days"));將返回$yesterday值爲'2017-04-10'。但實際上,在數據庫中,您正在使用時間戳字段進行比較,時間戳字段將時間戳記保存爲數字值。

    您可以使用php strtotime函數將任何日期轉換爲相應的時間戳。 strtotime($yesterday).

    正確的代碼將是:

    $yesterday = date('Y-m-d',strtotime("-1 days")); 
    $this->db->get_where('tablename', array('postid' => $dailystat['postid'], 'timestamp >=' => strtotime($yesterday))); 
    

    再次請確保您的數據庫字段時間戳僅存儲時間戳的形式日期。

    另一種解決方法是,你可以使用mysql的日期比較函數。

    相關問題