重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
//当天时间
我们提供的服务有:成都做网站、网站制作、微信公众号开发、网站优化、网站认证、平邑ssl等。为近1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的平邑网站制作公司
$where['time'] = array(
array('egt',strtotime(date('Y-m-d',time())),
array('lt',strtotime(date('Y-m-d',time())).'+1 day')
);
// 本周时间
$where['time'] = array(
array('egt',strtotime(date('Y-m-d',time())).'-'.date('w',time()).' day'),
array('lt',strtotime(date('Y-m-d',time())).'+1 week -'.date('w',time()).' day');
);
// 本月时间
$where['time'] = array(
array('egt',strtotime(date('Y-m',time()))),
array('lt',strtotime(date('Y-m',time()).'+1 month'))
);
// 本年时间
$where['time'] = array(
array('egt',strtotime(date('Y',time()))),
array('lt',strtotime(date('Y',time()).'+1 year'))
);
上面是查询条件,直接运用到查询语句就可以了
$result = $db-where($where)-select();
更正下上面的那个 本年 查询时间
$where['time'] = array(
array('egt',strtotime(date('Y-01-01',time())),
array('lt',strtotime(date('Y-01-01',time()).'+1 year'))
);
用户模块 在 phpcms/modules/member/member.php 92行左右!
代码贴下:
//默认选取一个月内的用户,防止用户量过大给数据造成灾难
$where_start_time = strtotime($start_time) ? strtotime($start_time) : 0;
$where_end_time = strtotime($end_time) + 86400;
//开始时间大于结束时间,置换变量
if($where_start_time $where_end_time) {
$tmp = $where_start_time;
$where_start_time = $where_end_time;
$where_end_time = $tmp;
$tmptime = $start_time;
$start_time = $end_time;
$end_time = $tmptime;
unset($tmp, $tmptime);
}
得到下个月的1号,然后减1,就是该月的最后一天啊,然后时间在该月1号和刚刚得到的时间戳之间就满足条件
从你的结构可以看出,你的日期使用的是UNIX时间戳,不是数据库的日期类型,这个可以使用函数FROM_UNIXTIME转换为数据库日期类型,然后使用date_format函数转换为指定格式。也可以使用UNIX_TIMESTAMP函数把日期转换为时间戳进行比较。
例如:查询本月的数据条件可以这样写:
WHERE date_format(FROM_UNIXTIME(`time`),'%Y%m')='201504'
还可以这样:
WHERE `TIME` BETWEEN UNIX_TIMESTAMP('2015-04-01 00:00:00') AND UNIX_TIMESTAMP('2015-04-30 23:59:59')
如果数据量特别多,后一种方式的查询速度更快,前提的`time`字段有索引。