凌的博客

您现在的位置是: 首页 > 学无止境 > PHP > 

PHP

PHP获取本周、上周、本月、上月、本季度、上季度等各类具体时间

2022-03-24 PHP 19484

1.获取本周开始和结束的日期:

echo date("Y-m-d H:i:s", mktime(0,0,0,date("m"),date("d")-date("w")+1,date("Y")));    //2020-03-09 00:00:00

echo date("Y-m-d H:i:s", mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y"))); //2020-03-15 23:59:59

2.获取上周开始和结束的日期:


echo date('Y-m-d H:i:s', mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y')));    //2020-03-02 00:00:00

echo date('Y-m-d H:i:s', mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'))); //2020-03-08 23:59:59

3.获取本月开始和结束的日期:


echo date('Y-m-d H:i:s', mktime(0,0,0,date('m'),1,date('Y')));        //2020-03-01 00:00:00

echo date('Y-m-d H:i:s', mktime(23,59,59,date('m'),date('t'),date('Y'))); //2020-03-31 23:59:59

4.获取上月开始和结束的日期:


echo date("Y-m-d H:i:s", mktime(0,0,0,date("m")-1,1,date("Y")));    //2020-02-01 00:00:00

echo date("Y-m-d H:i:s", mktime(23,59,59,date("m") ,0,date("Y")));  //2020-02-29 23:59:59

5.获取本季度开始和结束的日期:


$season = ceil((date('n'))/3);

echo date('Y-m-d H:i:s', mktime(0,0,0,$season*3-3+1,1,date('Y')));                           //2020-01-01 00:00:00

echo date('Y-m-d H:i:s', mktime(23,59,59,$season*3,date('t',mktime(0,0,0,$season*3,1,date("Y"))),date('Y'))); //2020-03-31 23:59:59

6.获取上季度开始和结束的日期:


$season = ceil((date('n'))/3)-1;//上季度是第几季度

echo date('Y-m-d H:i:s', mktime(0,0,0,$season*3-3+1,1,date('Y')));                          //2019-10-01 00:00:00

echo date('Y-m-d H:i:s', mktime(23,59,59,$season*3,date('t',mktime(0,0,0,$season*3,1,date("Y"))),date('Y')));//2019-12-31 23:59:59

7.获取本月是第几月:


echo date('n'); //3

8.获取今天是周几:


echo date("w"); //4

9.获取本月总天数:


echo date("t"); //31

10.获取上月的年月日期:


echo date('Y-m', strtotime(date('Y-m-01') . "-1 month")); //2020-02

这里之所以没有直接使用 date('Y-m', strtotime("-1 month")) 获取,是因为strtotime有一个小问题,如果当你获取的上个月没有今天的日期,会输出本月的月份,比如今天是3月31号,2月没有31号,那就会输出2020-03,同理下个月(strtotime("+1 month"))也是一样


文章评论

0条评论