< 返回首页

标哥的笔记,是记录在日常学习技术和日常开发中那些年遇到过的坑!本站为新站,原"标哥的技术博客"中的文章会慢慢移到本站,欢迎收藏本站!
在使用本站过程中,有任何建议请联系标哥! 另,承接App开发、网站开发和微信小程序开发!欢迎联系我们


PHP获取上/下/某个月的日期范围

 作者:标哥    发布日期:2017-03-11 20:41    阅读量:1305次
 

网站中常需要统计某些数据,通常都需要使用到日期来筛选统计,因为很多时候都需要使用到日期计算,用于数据库查询使用。这几天做一些统计功能时,需要使用到日期相关操作,最后写成了通用的函数,这里就分享出来给大家!

获取上个月的日期范围

如果想要获取上个月的第一天和最后一天的日期,通过这个函数可以得到:

function get_last_month_days($date){
  $timestamp=strtotime($date);
  $firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)-1).'-01'));
  $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day"));
  return array($firstday,$lastday);
}

获取下个月的日期范围

// 获取下个月的日期
function get_next_month_days($date){
  $timestamp=strtotime($date);
  $arr=getdate($timestamp);
  if($arr['mon'] == 12){
    $year=$arr['year'] +1;
    $month=$arr['mon'] -11;
    $firstday=$year.'-0'.$month.'-01';
    $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day"));
  }else{
    $firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)+1).'-01'));
    $lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day"));
  }
  return array($firstday,$lastday);
}

获取某日期所有月份第一天和最后一天

如果做季度表时,需要计算某一个月的绩效等,就需要这样的函数将该月的第一天和最后一天的时间返回:

// 获取指定日期所在的月份的第一天的开始时间和最后一天的结束时间
function get_month_begin_end($date) {
    $timestamp = strtotime( $date );
    $start_time = date( 'Y-m-1 00:00:00', $timestamp );
    $mdays = date( 't', $timestamp );
    $end_time = date( 'Y-m-' . $mdays . ' 23:59:59', $timestamp );

    return [$start_time, $end_time];
}


承接:ThinkPHP项目开发、网站项目开发、微信项目开发、微信小程序项目开发、App开发,欢迎联系标哥QQ632840804