1、获取一周前的日期
创新互联建站是一家专注于网站设计、网站建设与策划设计,淳安网站建设哪家好?创新互联建站做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:淳安等地区。淳安做网站价格咨询:028-86922220
$time=date("Y-m-d",mktime(0,0,0,date("m"),date("d")-7,date("Y")));
2、获取一个月前的日期
$time=date("Y-m-d",mktime(0,0,0,date("m")-1,date("d"),date("Y")));
3、获取当前时间
date("Y-m-d",time());
你的数据库里需要有一个记录时间的字段,例如这个字段是posttime,每次插入数据的时候,都记录下当前的时间戳,也就是time();
你需要得到上周开始,和上周结束的时间戳
$beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
$endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));
3.查询的时候,WHERE 条件里加上 posttime=$beginLastweek AND posttime=$endLastweek
希望对你有帮助
/*今天*/
select * from 表名 where to_days(时间字段) = to_days(now());
/*昨天*/
select * from 表名 where to_days(now())-to_days(时间字段) = 1;
/*近7天*/
select * from 表名 where date_sub(curdate(), interval 7 day) = date(时间字段);
/*查询距离当前现在6个月的数据*/
select * from 表名 where 时间字段 between date_sub(now(),interval 6 month) and now();
/*查询当前这周的数据*/
select * from 表名 where yearweek(date_format(时间字段,'%Y-%m-%d')) = yearweek(now());
/*查询上周的数据*/
select * from 表名 where yearweek(date_format(时间字段,'%Y-%m-%d')) = yearweek(now())-1;
/*查询当前月份的数据*/
select * from 表名 where date_format(时间字段,'%Y-%m')=date_format(now(),'%Y-%m');
/*查询上个月的数据*/
select * from 表名 where date_format(时间字段,'%Y-%m')=date_format(date_sub(curdate(), interval 1 month),'%Y-%m');
其它获取类似以上的代码显示
查询今天
select flag_detail.* from flag_detail where TO_DAYS(时间字段名) = to_days(now()) order by 时间字段名 desc ;
查询昨天
SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) = 1 order by 时间字段名 desc ;
查询近30天
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) = date(时间字段名) order by 时间字段名 desc;
使用PHP的strtotime函数可以获取指定时间或日期的时间戳,然后再使用date函数格式化时间戳就可以了。
举例如下:
date_default_timezone_set('PRC'); //设置时区
//打印出3天前的时间
echo(date('Y-m-d H:i:s', strtotime("-3 day")));
//打印出2个星期前的时间
echo(date('Y-m-d H:i:s', strtotime("-2 week")));
//打印出5个小时后的时间
echo(date('Y-m-d H:i:s', strtotime("+5 hours")));
//打印出1个星期后的时间
echo(date('Y-m-d H:i:s', strtotime("+1 week")));
输出结果: