2016-02-26 64 views
0

它是如何工作的?這行PHP代碼如何工作?

// Purge obsolete login attempts 
    $this->db->or_where('UNIX_TIMESTAMP(time) <', time() - $expire_period); 

$這個 - > DB-> or_where就是笨的方法,無論是「UNIX_TIMESTAMP」和時間()的返回時間戳記,我想不通爲什麼「UNIX_TIMESTAMP」會比第二個參數少。

回答

1

time是數據庫中的一個字段(很可能是日期時間字段),它正在被數據庫轉換爲Unix時間戳格式。所以在理論上這將等於寫這個:

$this->db->or_where('time <', date('Y-m-d H:i:s', (time() - $expire_period))); 
0

我沒有理解Codeigniter框架。但UNIX_TIMESTAMP()部分是一個SQL函數,用於將日期提取或解析爲Unix時間戳。您可以在MySQL Date and Time Function文檔中查看它。

因此UNIX_TIMESTAMP(time)實際上是獲取表上的time列並將其解析爲Unix時間戳。

總之,上述代碼將獲取time列小於當前time - $expired_period的所有行。