×

thinkphp时间区间查询

thinkphp时间区间查询的简单介绍

admin admin 发表于2023-04-04 06:24:07 浏览48 评论0

抢沙发发表评论

本文目录一览:

怎样在thinkphp 查询语句中将时间戳格式转化为年月日格式,然后再作为where条件查询

使用where方法

where方法支持时间比较,例如:

//

大于某个时间

where('create_time','

time','2016-1-1');

//

小于某个时间

where('create_time','=

time','2016-1-1');

//

时间区间查询

where('create_time','between

time',['2015-1-1','2016-1-1']);

第三个参数可以传入任何有效的时间表达式,会自动识别你的时间字段类型,支持的时间类型包括timestamps、datetime、date和int。

使用whereTime方法

whereTime方法提供了日期和时间字段的快捷查询,示例如下:

//

大于某个时间

db('user')

-whereTime('birthday',

'=',

'1970-10-1')

-select();

//

小于某个时间

db('user')

-whereTime('birthday',

'',

'2000-10-1')

-select();

//

时间区间查询

db('user')

-whereTime('birthday',

'between',

['1970-10-1',

'2000-10-1'])

-select();

//

不在某个时间区间

db('user')

-whereTime('birthday',

'not

between',

['1970-10-1',

'2000-10-1'])

-select();

时间表达式

还提供了更方便的时间表达式查询,例如:

//

获取今天的博客

db('blog')

-whereTime('create_time',

'today')

-select();

//

获取昨天的博客

db('blog')

-whereTime('create_time',

'yesterday')

-select();

//

获取本周的博客

db('blog')

-whereTime('create_time',

'week')

-select();

//

获取上周的博客

db('blog')

-whereTime('create_time',

'last

week')

-select();

//

获取本月的博客

db('blog')

-whereTime('create_time',

'month')

-select();

//

获取上月的博客

db('blog')

-whereTime('create_time',

'last

month')

-select();

//

获取今年的博客

db('blog')

-whereTime('create_time',

'year')

-select();

//

获取去年的博客

db('blog')

-whereTime('create_time',

'last

year')

-select();

如果查询当天、本周、本月和今年的时间,还可以简化为:

//

获取今天的博客

db('blog')

-whereTime('create_time',

'd')

-select();

//

获取本周的博客

db('blog')

-whereTime('create_time',

'w')

-select();

//

获取本月的博客

db('blog')

-whereTime('create_time',

'm')

-select();

//

获取今年的博客

db('blog')

-whereTime('create_time',

'y')

-select();

V5.0.5+版本开始,还可以使用下面的方式进行时间查询

//

查询两个小时内的博客

db('blog')

-whereTime('create_time','-2

hours')

-select();

这些在开发手册中都可以找到的。希望可以帮到你。

想问一下thinkphp根据日期字段查询某一天到最后一天的所有记录

把选择的日期和数据库的日期都转换成时间戳查询就是了,注意把最后一天的日期拼接成到凌晨。

如:开始时间戳 $start = strtotime('2017-08-01');

截止时间戳 $end = strtotime('2017-08-17 23:59:59');

查询条件:$map['time'] = array('between',array($start, $end));

默认写的time字段,这个根据你数据库自定义,数据库的时间也转换成时间戳。

thinkphp 怎么查本周 本月时间范围内的数据

求本周的开始和结束时间

$w = date('w',time()) - 1;

$start_time = time() - $w * 60 * 60 * 24;         //星期一的时间戳

$end_time = time() + (6 - $w) * 60 * 60 * 24; //星期天的时间戳

M('tablename')-where("create_time =  {$start_time} and create_time = $end_time")-select();

月份的也很简单了,求出本月开始和结束的时间,然后在根据时间查询就可以了