首页
文章列表
交流群
文档
登录
FastAdmin Thinkphp5 中关于 whereTime不生效的一个小
2024-10-10 21:14:20
小程序码
文章目录
热门文章
整理下php学员遇到的一些问题
431
fastadmin监听或重写删除编辑按钮事件
285
phpstudy怎么手动安装php8.3.0版本?
275
文档:一个案例学会fastadmin插件开发
148
php基础入门课程资料文档课件
134
表单验证:密码和确认密码的验证和文字提示
76
百题斩:用递归方式扁平化嵌套数组
67
百题斩:字符串的逆序函数
60
案例代码:用油猴脚本统计b站课堂课程总时长
59
使用ffmpeg把mp4转为加密后的m3u8文件
55
### 数据表如下 ```php create table fa_test ( id int unsigned auto_increment comment 'ID' primary key, user_id int(10) default 0 null comment '会员ID', year year null comment '年', times time null comment '时间', refreshtime bigint(16) null comment '刷新时间', createtime bigint(16) null comment '创建时间', updatetime bigint(16) null comment '更新时间', deletetime bigint(16) null comment '删除时间', delete_time int(10) null ) comment '测试表' collate = utf8mb4_unicode_ci; ``` ### 源代码如下 ```php $startTime='2022-09-01 00:00:00'; $end='2022-09-01 00:00:00'; $range=[$startTime,$end]; //定义个时间区间 //这里关联的定义为 /** public function cate() { return $this->belongsTo(Category::class, 'cate_id', 'id', [], 'LEFT')->setEagerlyType(0); } */ $list = $this->model ->with(['cate']) ->whereTime('updatetime','between',$range) ->whereTime('createtime','between',$range) ->whereTime('delete_time','between',$range) ->whereTime('time','between',$range) ->whereTime('year','between',$range) ->whereTime('refreshtime','between',$range) ->whereTime('cate.createtime','between',$range) ->buildSql(); //打印执行的sql语句 print_r($list); ``` ### 输入结果为 ```sql SELECT * FROM `fa_test``test` LEFT JOIN `fa_category``cate` ON `test`.`cate_id` = `cate`.`id` WHERE ( `updatetime` BETWEEN 1661961600 AND 1661961600 AND `createtime` BETWEEN 1661961600 AND 1661961600 AND `delete_time` BETWEEN 1661961600 AND 1661961600 AND `time` BETWEEN '2022-09-01 00:00:00' AND '2022-09-01 00:00:00' AND `year`BETWEEN '1661961600'AND '1661961600' AND `refreshtime` BETWEEN 1661961600 AND 1661961600 AND `cate`.`createtime` BETWEEN '1661961600' AND '1661961600' ) ``` ### 结论 1.whereTime 的字段,必须为数据表中存在的字段,才会解析为时间戳; 2.对于关联模型的字段有同样的要求; 3.无论数据表中的字段类型是int还是其他类型, 都会解析为时间戳