这个查询的sql语句是这样的select from table(你查询资料的数据表名) where addtime(你资料表中添加时间的字段)>=(1号的时间戳) and addtime<=(15号的时间戳),这样你看下你要求出几个变量了:1号的时间戳和15号的时间戳,这样就可以查询出 1号至15号的资料了
这个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内置时间函数 strtotime 在求上个月这个功能上存在bug,所以放弃不用了……
上个自己写的临时用的,楼主看看:
$thismonth = date('m');
$thisyear = date('Y');
if($thismonth==1) {
$lastmonth = 12;
$lastyear = $thisyear-1;
} else {
$lastmonth = $thismonth - 1;
$lastyear = $thisyear;
}
$lastStartDay = $lastyear'-'$lastmonth'-1';
$lastEndDay = $lastyear'-'$lastmonth'-'date('t',strtotime($lastStartDay));
echo 'lastStartDay = '$lastStartDay;
echo '<br/>';
echo 'lastEndDay = '$lastEndDay;
/
获取指定月份的第一天开始和最后一天结束的时间戳
@param int $y 年份 $m 月份
@return array(本月开始时间,本月结束时间)
/
function mFristAndLast($y="",$m=""){
if($y=="") $y=date("Y");
if($m=="") $m=date("m");
$m=sprintf("%02d",intval($m));
$y=str_pad(intval($y),4,"0",STR_PAD_RIGHT);
$m>12||$m<1$m=1:$m=$m;
$firstday=strtotime($y$m"01000000");
$firstdaystr=date("Y-m-01",$firstday);
$lastday = strtotime(date('Y-m-d 23:59:59', strtotime("$firstdaystr +1 month -1 day")));
return array("firstday"=>$firstday,"lastday"=>$lastday);
}
以上就是关于php怎么做1号至15号查询上个月的资料全部的内容,包括:php怎么做1号至15号查询上个月的资料、php中用time()函数存入时间,如何查询当月的数据、php如何求上一个月月初至月末等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)