本文目录一览:
- 1、怎样在thinkphp 查询语句中将时间戳格式转化为年月日格式,然后再作为where条件查询
- 2、想问一下thinkphp根据日期字段查询某一天到最后一天的所有记录
- 3、thinkphp 怎么查本周 本月时间范围内的数据
怎样在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();
月份的也很简单了,求出本月开始和结束的时间,然后在根据时间查询就可以了