php获取上月
A. php 获取月份数据怎么写
取出时间戳,然后利用PHP格式化时间戳就可以看到月了。date('m',这里是从库中取出的时间戳);这样输出出来的就是月了!
B. 如何用PHP 获取今天之前,本周之前,本月之前,本年之前,今天,本周,本月,本年的数据呢
/*今天*/
select*from表名whereto_days(时间字段)=to_days(now());
/*昨天*/
select*from表名whereto_days(now())-to_days(时间字段)=1;
/*近7天*/
select*from表名wheredate_sub(curdate(),interval7day)<=date(时间字段);
/*查询距离当前现在6个月的数据*/
select*from表名where时间字段betweendate_sub(now(),interval6month)andnow();
/*查询当前这周的数据*/
select*from表名whereyearweek(date_format(时间字段,'%Y-%m-%d'))=yearweek(now());
/*查询上周的数据*/
select*from表名whereyearweek(date_format(时间字段,'%Y-%m-%d'))=yearweek(now())-1;
/*查询当前月份的数据*/
select*from表名wheredate_format(时间字段,'%Y-%m')=date_format(now(),'%Y-%m');
/*查询上个月的数据*/
select*from表名wheredate_format(时间字段,'%Y-%m')=date_format(date_sub(curdate(),interval1month),'%Y-%m');
其它获取类似以上的代码显示
C. PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
代码如下:
// 获取指定日期所在星期的开始时间与结束时间
function getWeekRange($date){
$ret=array();
$timestamp=strtotime($date);
$w=strftime('%u',$timestamp);
$ret['sdate']=date('Y-m-d 00:00:00',$timestamp-($w-1)*86400);
$ret['edate']=date('Y-m-d 23:59:59',$timestamp+(7-$w)*86400);
return $ret;
}
// 获取指定日期所在月的开始日期与结束日期
function getMonthRange($date){
$ret=array();
$timestamp=strtotime($date);
$mdays=date('t',$timestamp);
$ret['sdate']=date('Y-m-1 00:00:00',$timestamp);
$ret['edate']=date('Y-m-'.$mdays.' 23:59:59',$timestamp);
return $ret;
}
// 以上两个函数的应用
function getFilter($n){
$ret=array();
switch($n){
case 1:// 昨天
$ret['sdate']=date('Y-m-d 00:00:00',strtotime('-1 day'));
$ret['edate']=date('Y-m-d 23:59:59',strtotime('-1 day'));
break;
case 2://本星期
$ret=getWeekRange(date('Y-m-d'));
break;
case 3://上一个星期
$strDate=date('Y-m-d',strtotime('-1 week'));
$ret=getWeekRange($strDate);
break;
case 4: //上上星期
$strDate=date('Y-m-d',strtotime('-2 week'));
$ret=getWeekRange($strDate);
break;
case 5: //本月
$ret=getMonthRange(date('Y-m-d'));
break;
case 6://上月
$strDate=date('Y-m-d',strtotime('-1 month'));
$ret=getMonthRange($strDate);
break;
}
return $ret;
}
D. php有没相关函数可以获取给定日期的上个月的第一天及最后一天
没有,可以取当前月的第一天00:00的时间戳,然后减24小时,再date即是上个月的最后一天。
如:
$prev_month_last_day = date("Y/m/d", strtotime(date("Y-m-1")) - 86400);
list($year, $month, $day) = explode("/", $prev_month_last_day);
$prev_month_first_day = $year . '/' . $month . '/1';
printf("first day of prev month is : %s\nlast day of prev month is : %s\n", $prev_month_first_day, $prev_month_last_day);
E. php中使用mktime() 如何获取上一月昨天的时间,今天的时间,明天的时间;
如果一个月固定30天,那真的很好办,直接当前 时间戳-30*86400 就是上一月今天的时间戳了,加减一次86400就是加减一天。
如果今天几号要对应上一月几号,我就提一些注意点吧,当前月份减1和加1当然就是上一个月和下一个月,不过注意要12月和1月的判断,还有如果今天3月30号,上一个月也没30号,这些还要看你自己想怎么处理。只要拿到正确的日期,传入mktime就拿到时间了,至于昨天和明天,一样加减一次86400就行了。