Home  >  Article  >  Backend Development  >  Get the dates of last month, next month, and this month (strtotime, date) under PHP_PHP tutorial

Get the dates of last month, next month, and this month (strtotime, date) under PHP_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:39:56855browse

When I was writing a program today, I suddenly discovered a function I wrote a long time ago to get the number of days in a month, a classic switch version. But when I got the number of days in the previous month, I just changed the month by -1. I guess I was too sleepy at the time. , it gave me a creepy feeling when I saw it. I originally wanted to deal with it again, but I thought there must be some super convenient method, so I found the version below and made a small modification.

Get the date of this month:

Copy code The code is as follows:

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

$firstday is the first day of the month. If $date is 2014-2, $firstday will be 2014-02-01. Then add one month to $firstday to get 2014-03-01, and then subtract one day. It is 2014-02-28. It is so convenient to use date() and strtotime().

Get the date of last month:

Copy code The code is as follows:

function getlastMonthDays($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);
}

You need to get a timestamp for the last month’s date first, and then add -1 to the month. The super smart date() will convert things like 2014-0-1 into 2013-12-01. It’s so cool. .

Get next month’s date:

Copy code The code is as follows:

function getNextMonthDays($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);
}

The code for next month’s date looks a bit longer, because date() cannot convert something like 2014-13-01, it will go back directly to 1970, so we need to deal with the problem of December in the front, except for December Just +1 for the month and that’s it.

In general, it is very convenient, the date function is too powerful.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/728082.htmlTechArticleWhen I was writing a program today, I suddenly discovered a function that I wrote a long time ago to get the number of days in the month, the classic switch version , but when getting the number of days in the previous month, I just reduced the month by -1, which is probably...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn