纯属转载。用到上个月起止时间戳,经过度娘检索,已经有人总结过了,特记录一下

PHP获取今天,昨天,本月,上个月,本年 起始时间戳或日期,最新更新时间为2020-04-01

date_default_timezone_set("Asia/Shanghai"); //设置为上海时间 否则开始时间会相差8个小时
 //获取今日开始时间戳和结束时间戳
$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));
$endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
 
//获取昨日起始时间戳和结束时间戳
$beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y'));
$endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1;
 
//获取本周起始时间戳和结束时间戳 
$beginThisweek = mktime(0,0,0,date('m'),date('d')-date('w')+1,date('y'));
$endThisweek=time();
 
//获取上周起始时间戳和结束时间戳
$beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
$endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));
 
//获取本月起始时间戳和结束时间戳
$beginThismonth=mktime(0,0,0,date('m'),1,date('Y'));
$endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'));
 
 //上个月的起始时间:
$month =  1;  // 1代表上个月,可以增加数字追溯前几个月的时间
$begin_time = date("Y-m-d", mktime(0, 0, 0, date("m") - 1 * $month, 1, date("Y")));
$end_time = date("Y-m-d", mktime(23, 59, 59, date("m") - ($month - 1), 0, date("Y")));
// 以下方法有误差,例如3月31日那天的上个月时间匹配出是3月2日,已亲自测试,所以已废弃
//$begin_time = strtotime(date('Y-m-01 00:00:00',strtotime('-1 month')));
//$end_time = strtotime(date("Y-m-d 23:59:59", strtotime(-date('d').'day')));
 
$begin_year = strtotime(date("Y",time())."-1"."-1"); //本年开始
$end_year = strtotime(date("Y",time())."-12"."-31"); //本年结束
 
//现在的时间到第二天凌晨相差的时间戳
$time = (strtotime(date('Y-m-d'))+3600*24) - time() ;

转载自:https://blog.csdn.net/xiaoweite1/article/details/82707494