扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
复制代码
创新互联公司专业为企业提供泾县网站建设、泾县做网站、泾县网站设计、泾县网站制作等企业网站建设、网页设计与制作、泾县企业网站模板建站服务,十载泾县做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
代码如下:
echo
date("Ymd",strtotime("now")),
"\n";
echo
date("Ymd",strtotime("-1
week
Monday")),
"\n";
echo
date("Ymd",strtotime("-1
week
Sunday")),
"\n";
echo
date("Ymd",strtotime("+0
week
Monday")),
"\n";
echo
date("Ymd",strtotime("+0
week
Sunday")),
"\n";
//date('n')
第几个月
//date("w")
本周周几
//date("t")
本月天数
echo
'br上周:br';
echo
date("Y-m-d
H:i:s",mktime(0,
,
0,date("m"),date("d")-date("w")+1-7,date("Y"))),"\n";
echo
date("Y-m-d
H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7-7,date("Y"))),"\n";
echo
'br本周:br';
echo
date("Y-m-d
H:i:s",mktime(0,
,
0,date("m"),date("d")-date("w")+1,date("Y"))),"\n";
echo
date("Y-m-d
H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y"))),"\n";
echo
'br上月:br';
echo
date("Y-m-d
H:i:s",mktime(0,
,
0,date("m")-1,1,date("Y"))),"\n";
echo
date("Y-m-d
H:i:s",mktime(23,59,59,date("m")
,0,date("Y"))),"\n";
echo
'br本月:br';
echo
date("Y-m-d
H:i:s",mktime(0,
,
0,date("m"),1,date("Y"))),"\n";
echo
date("Y-m-d
H:i:s",mktime(23,59,59,date("m"),date("t"),date("Y"))),"\n";
$getMonthDays
=
date("t",mktime(0,
,
0,date('n')+(date('n')-1)%3,1,date("Y")));//本季度未最后一月天数
echo
'br本季度:br';
echo
date('Y-m-d
H:i:s',
mktime(0,
0,
0,date('n')-(date('n')-1)%3,1,date('Y'))),"\n";
echo
date('Y-m-d
H:i:s',
mktime(23,59,59,date('n')+(date('n')-1)%3,$getMonthDays,date('Y'))),"\n";
首先你要明白,最后查询的语句肯定是一样的,一样的查询自然会得到一样的结果,至于你想只输入年和月就查询到结果,则只是将工作转移到程序上去处理而已;你想实现的效果代码处理如下:
$y=$_POST['year'],$m=$_POST['month'];
$t1=strtotime($y.'-'.$m.'-1 0:0:0');
$t1=strtotime($y.'-'.$m.'-31 23:59:59');
$sqltime=" actime ".$t1." and actime ".$t2);
......
这个time()函数是将时间保存成时间戳格式,则要查当月数据,只要查当月第一天到当月最后一天的之间的数据即可。
假设这个用来判断的字段是date
sql语句
SELECT ………… WHERE………… `date` = 本月第一天的time值 AND `date` 下个月第一天的time值
所以这里就只要获取当月第一天以及下个月第一天的时间戳
具体如下:
?php
$cur = date('Y-m',time());//当天年月
$cur_y = date('Y',time());//当天年份
$cur_m = date('m',time());//当天月份
$cur_f = $cur . '-1';//本月首日
$first = strtotime($cur_f);//时间戳最小值,本月第一天时间戳
//下月首日
if($cur_m=12){
$cur_n = ($cur_y+1) . '-1-1';
}else{
$cur_n = $cur_y . '-' . ($cur_m+1) . '-1';
}
$last = strtotime($cur_n);//时间戳最大值,下个月第一天时间戳
?
再把$first 和 $last 放入sql语句里面就可以查询到数据了
PHP查询到的数据存放到数组里面,一般使用$arr[]=$row的方式实现,$row是mysql_fetch_array获得的一行数据,本身是一个数组,执行上面的语句之后,这一行会添加存放在额为数组$arr的最后。
典型的例子代码是这样的:mysql_connect('127.0.0.1',
'root',
'123456');$sql='select
*
from
test.tab';if
($res=mysql_query($sql)){
while($row=mysql_fetch_array($res))
$result[]=$row;
mysql_free_resule($res);}else
echo
"执行SQL语句:$sql\n错误:".mysql_error();echo
'查询结果在下面的额为数组里面:';print_r($result);echo
'';
/*今天*/
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');
其它获取类似以上的代码显示
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流