这行 php 代码是如何工作的


How does this line php code work?

它是如何工作的?

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

$this->db->or_where 是代码点火器方法,"UNIX_TIMESTAMP"和 time() 都返回时间戳,我不知道为什么"UNIX_TIMESTAMP"会小于第二个参数。

time是数据库中的一个字段(很可能是日期时间字段),数据库正在将其转换为Unix时间戳格式。所以理论上它相当于写这个:

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

我对Codeigniter框架一无所知。但UNIX_TIMESTAMP()部分是一个SQL函数,用于获取或解析日期作为Unix时间戳。您可以在MySQL日期和时间函数文档中查看它。

因此,UNIX_TIMESTAMP(time)实际上是获取表上的time列并将其解析为 Unix 时间戳。

总之,上面的代码将获取time列小于当前time - $expired_period的所有行。