🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
~~~ <?php class DateHandle{ //常用处理 public function test(){ //获取当前时间,字符串型 $date = date('Y-m-d H:i:s',time()); //获取5天前的时间 $date = date("Y-m-d H:i:s",strtotime("-5 day",strtotime($date))); //字符串时间减一个月(下面的三种形式都有问题) //每月31天的时候最后一天获取上个月失败,返回的还是12月 $date = date("Y-m",strtotime("-1 month",strtotime($date))); $date = date('Y-m',strtotime('2017-12-31 -1 month')); $date = date('Y-m',strtotime("-1 month")); //以下是正确形式 $date = date('Y-m',strtotime(date('Y-m-01',strtotime("2017-12-31")).' -1 month')); //直接取当前时间的上一个月 $date = date('Y-m',strtotime(date('Y-m-01',time()).' -1 month')); } /** * 1.获取开始时间到当前时间的所有月份 * 返回值,包含$start_time,包含当前月 * $start_time,格式:Y-m */ public function getMonths($start_time){ if(empty($start_time)) return []; $end_time = date("Y-m",time()); $months[] = $start_time; if($end_time == $start_time ){ return $months; }else{ if($start_time>$end_time){ return []; }else { $i = 1; while (true){ $tt = date("Y-m",strtotime("+".$i." month",strtotime($start_time))); $months[] = $tt; if($tt == $end_time){ break; } $i++; } } return $months; } } /** * 获取两个日期之间的时间月份间隔 * @param $date1 * @param $date2 * @return number */ function getMonthNum($date1,$date2){ if(strtotime($date1)>=strtotime($date2)){ return 0; } list($date_1['y'],$date_1['m'])=explode("-",date('Y-m',strtotime($date1))); list($date_2['y'],$date_2['m'])=explode("-",date('Y-m',strtotime($date2))); return abs($date_1['y']-$date_2['y'])*12 +($date_2['m']-$date_1['m']); } } ~~~