When I was writing a program today, I suddenly found a function that was written a long time ago to get the number of days of the month. The classic switch version, but when I got the number of days of the previous month, I only set the month to 1, it is estimated that it was too difficult at the time, and then I saw a sense of treasure. I wanted to deal with it again, but I was sure there were some very convenient methods. So I found the following version, A small modification was made.
Get the date of this month:
Copy codeThe 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 like 2014-2, $ firstday will be. Then, add a month based on $ firstday to, and then subtract one day from, it is really convenient to use date () and strtotime.
Get last month Date:
Copy codeThe 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, and then-1 in the month will be OK. The super intelligent date () will convert 2014-0-1 to, which is so nice.
Obtain the Date of next month:
Copy codeThe 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 the next month's date looks a little longer, because date () cannot be converted into something similar to 2014-13-01, And it will return directly to 1970, so we need to deal with the issue of December before, in addition to December, the month + 1 is OK.
In general, it is very convenient. The date function is too powerful.